더보기
입력된 문자열 String[]을 정렬합니다.
규칙 1 : 정렬 기준은 입력된 정수 n에 해당하는 인덱스의 알파벳으로 오름차순입니다.
규칙 2 : 만약 규칙 1에서 동일한 알파벳이 검사되면 문자열에 대한 사전적 오름차순을 적용합니다.
문제 풀이: Arrays.sort()와 Stream의 sorted() 사용하여 정렬하기
문자열 String[]을 정렬하기 위해 Arrays.sort()를 사용합니다.
import java.util.*;
public class Solution {
public String[] solution(String[] strings, int n) {
Arrays.sort(strings, (lp, rp) -> { });
return strings;
}
}
코드 | 비고 | |
Arrays.sort에서 규칙 1과 규칙 2에 대한 로직을 구현합니다.
import java.util.*;
import java.util.stream.Stream;
public class Solution {
public String[] solution(String[] strings, int n) {
Arrays.sort(strings, (lp, rp) -> {
if (lp.charAt(n) == rp.charAt(n)) {
return Stream.of(lp, rp).sorted().toArray()[0] == lp ? -1 : 1;
} else {
return lp.charAt(n) < rp.charAt(n) ? -1 : 1;
}
});
return strings;
}
}
코드 | 비고 | |
Stream의 sorted()는 compareTo()로 대체 할 수 있습니다.
import java.util.*;
public class Solution {
public String[] solution(String[] strings, int n) {
Arrays.sort(strings, (lp, rp) -> {
if (lp.charAt(n) == rp.charAt(n)) {
return lp.compareTo(rp);
} else {
return lp.charAt(n) < rp.charAt(n) ? -1 : 1;
}
});
return strings;
}
}
코드 | 비고 | |
'Algorithm > Programmers' 카테고리의 다른 글
Level 1: 둘만의 암호, 임의의 ASCII 코드 연산을 모킹하여 풀이 (0) | 2023.11.30 |
---|---|
Level 1: 예산, 배열의 오름차순 정렬 (0) | 2023.11.30 |
Level 1: 나누어 떨어지는 숫자 배열, Stream의 filter()와 sorted() (0) | 2023.11.30 |
Level 1: 같은 숫자는 싫어, 배열의 연속된 중복 Element 제거 (0) | 2023.11.30 |
Level 1: 가운데 글자 가져오기, 짝수 홀수 판단과 배열 인덱싱 (0) | 2023.11.30 |