알고리즘/프로그래머스 Level1
[프로그래머스,자바] Level1:문자열 내 마음대로 정렬하기
류창
2021. 8. 18. 22:05
반응형
문제분석
strings에 있는 단어들을 n에 위치한 문자를 기준으로 다시 정렬해주는 문제다.
정렬기준을 바꿀줄 안다면 쉽게 풀수있는문제다.
문제풀이
필자는, 이렇게 Override 정렬하는걸 별로 좋아하지않는다.
람다식으로 Arrays.sort(strings,(a,b)->a.charAt(n)-(b.charAt(n))으로 하려다가,
조건: 인덱스 1의 문자가 같은문자열이 여럿일 경우 사전순으로 앞선 문자열 먼저 배치
때문에 이게 통하지않는다.
Arrays.sort(strings)를 먼저하고 하면 되긴하지만 속도가 너무 많이걸려서 포기했다.
그래서 정석대로 Override하여 구현했다.
Compartor를 새로 선언한뒤, 정렬기준을 override하여 같을때는 기존정렬,
아니면 n에위치한 문자를 기준으로 정렬한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
import java.util.*;
class Solution {
public String[] solution (String[] strings, int n) {
Arrays.sort(strings,new Comparator<String>(){
public int compare (String a, String b){
if(a.charAt(n)==b.charAt(n)) return a.compareTo(b);
return a.charAt(n)-b.charAt(n);
}
});
return strings;
}
}
|
cs |
반응형