https://school.programmers.co.kr/learn/courses/30/lessons/12915
📝 풀이 2 : (a.charAt(n) + a).compareTo()
`a.charAt(n) + a`와 `b.charAt(n) + b`를 비교한다.
문자열 앞에 n번째 글자를 더해줌으로써, n번째 글자를 기준으로 먼저 정렬하게 한다.⭐
import java.util.Arrays;
class Solution {
// strings를 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬
public String[] solution(String[] strings, int n) {
Arrays.sort(strings, (a, b) -> (a.charAt(n) + a).compareTo(b.charAt(n) + b));
return strings;
}
}
📝 풀이 1 : Character.compare() + a.compareTo()
`Character.compare()`를 통해 n번째 글자를 먼저 비교하고, 같다면 전체 문자열을 비교하도록 한다.
import java.util.Arrays;
class Solution {
// strings를 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬
public String[] solution(String[] strings, int n) {
Arrays.sort(strings, (a, b) -> {
// n번째 글자를 기준으로 정렬
int cmp = Character.compare(a.charAt(n), b.charAt(n));
if (cmp != 0) return cmp;
// n번째 글자가 같다면 전체 문자열을 기준으로 정렬
return a.compareTo(b);
});
return strings;
}
}
'🌷알고리즘 문제풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/Java] 콜라 문제(총 교환 횟수 (n - b) / (a - b)) (0) | 2024.08.17 |
---|---|
[프로그래머스/Java] [1차] 비밀지도(비트 OR 연산 |) (0) | 2024.08.17 |
[프로그래머스/Java] 푸드 파이트 대회(StringBuilder.reverse()) (0) | 2024.08.16 |
[프로그래머스/Java] K번째수(Stream) (0) | 2024.08.16 |