Leetcode Java Custom Sort String
업데이트:
문제
코드
class Solution {
public String customSortString(String order, String s) {
int[] count = new int[26];
for (char c : s.toCharArray()) {
count[c - 'a']++;
}
StringBuilder sb = new StringBuilder();
for (char c : order.toCharArray()) {
while (count[c - 'a']-- > 0) {
sb.append(c);
}
}
for (int idx = 0; idx < count.length; idx++) {
while (count[idx]-- > 0) {
sb.append((char) ('a' + idx));
}
}
return sb.toString();
}
}
결과
설명
-
s 문자열을 이용하여 order 문자열의 각 문자의 순서대로 정렬된 문자열을 만드는 문제이다.
- 문제 풀이에 필요한 변수를 정의한다.
- count 배열은 s 문자열의 각 문자 개수를 저장할 변수로, 알파벳 개수인 26 크기로 초기화하여 s의 각 문자 개수를 넣어준다.
- sb는 정렬된 문자열을 동적으로 만들기 위한 변수로, StringBuilder로 초기화한다.
- order의 모든 문자열을 c에 넣어 아래를 반복한다.
- count에서 c의 영문자 순서에 해당하는 횟수만큼 sb에 c를 이어준다.
- 3번이 완료되면 0부터 count의 길이까지 아래를 반복한다.
- count에 남아있는 값이 있으면 차례대로 sb에 해당 순서에 해당하는 영문자로 변환하여 이어준다.
- 모든 수행이 완료되어 order의 문자 순으로 정렬된 sb를 문자열로 변환하여 주어진 문제의 결과로 반환한다.
소스
Sample Code는 여기에서 확인 가능합니다.
댓글남기기