https://programmers.co.kr/learn/courses/30/lessons/12915
정렬을 해야하니까...
n번째 인덱스를 맨 앞에 놓고 원래 문자를 붙인걸 저장한 arrayList를 sort 하고
substring으로 1부터로 저장하면됨....
(Collections.sort() 시 사전순 sort되므로 조건을 더이상 구현하지 않아도 됨)
코드
import java.util.*;
class Solution {
public String[] solution(String[] strings, int n) {
String[] answer;
ArrayList<String> arrayList = new ArrayList<>();
for(int i = 0; i < strings.length; i++)
arrayList.add(strings[i].charAt(n) + strings[i]);
Collections.sort(arrayList);
answer = new String[arrayList.size()];
for(int i = 0; i < arrayList.size(); i++)
answer[i] = arrayList.get(i).substring(1);
return answer;
}
}
원래 compareTo를 사용해야하나 했는데 두개씩 비교하는건 에바같아서...
s1.compareTo(s2) 를 했을 때 s1>s2이면 양수, 반대면 음수, 0이면 같은 문자인 것이다.
다른 사람 코드
comparator 사용함.
이것도 좋네요
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 문자열 다루기 기본 for JAVA (0) | 2022.02.22 |
---|---|
[프로그래머스] 문자열 내 p와 y의 개수 for JAVA (0) | 2022.02.20 |
[프로그래머스] 문자열 내림차순으로 배치하기 for JAVA (0) | 2022.02.18 |
[프로그래머스] 두 정수 사이의 합 for JAVA (0) | 2022.02.17 |
[프로그래머스] 나누어 떨어지는 숫자 배열 for JAVA (0) | 2022.02.16 |