Leetcode Java Orderly Queue

업데이트:

문제

Link

코드

class Solution {

  public String orderlyQueue(String s, int k) {
    if (k > 1) {
      char[] charArray = s.toCharArray();
      Arrays.sort(charArray);
      return new String(charArray);
    } else {
      String result = s;
      for (int i = 1; i < s.length(); i++) {
        String temp = s.substring(i) + s.substring(0, i);
        if (result.compareTo(temp) > 0) {
          result = temp;
        }
      }
      return result;
    }
  }

}

결과

Link

설명

  1. s의 처음 k개의 문자 중 하나를 선택하여 문자열 끝에 추가할 때, 사전적인 순서가 낮은 문자열을 탐색하는 문제이다.

  2. k가 1보다 큰 경우 문자열의 모든 문자는 차례대로 정렬이 가능하므로, s를 문자 배열로 번환하여 오름차순 정렬한 결과를 문자열로 변환하여 주어진 문제의 결과로 반환한다.

  3. k가 1인 경우, 아래를 수행한다.

    • result에 s를 넣어주고, 1부터 s의 길이 미만까지 i를 증가시키며 아래를 반복한다.
      • temp에 s의 i번째 이후의 문자와 처음부터 i번째 미만까지 문자를 합친 결과를 넣어준다.
      • result와 비교하여 사전적 순서가 낮은 문자열을 result에 넣어준다.
    • 반복이 완료되어 사전적 순서가 낮은 문자열이 저장된 result를 주어진 문제의 결과로 반환한다.

소스

Sample Code는 여기에서 확인 가능합니다.

댓글남기기