문제 풀이 (JAVA)
import java.util.*;
class Solution {
public String[] solution(String[] strings, int n) {
List<String> list= new ArrayList<String>();
for(int i=0; i<strings.length; i++){
list.add(strings[i].charAt(n)+ strings[i]); // n번째 문자열 + 기존문자열을 붙힘으로써 정렬의 기준을 만든다. 제한조건.5 만족
}
Collections.sort(list); // 새로 만든 리스트 문자열을 정렬한다.
String [] answer = new String[strings.length];
for(int i=0; i<list.size(); i++){
answer[i]=list.get(i).substring(1,list.get(i).length()); // 정렬시키기 위하여 붙였던 n 문자를 제외한 2번째 글자부터 정렬된 문자열을 가져온다.
}
return answer;
}
}
주요 핵심 포인트
1. n번째 문자를 기준으로 정렬을 해야 하나, n번째 문자가 동일한 문자일 경우 n을 기준으로 정렬 후 기존 문자열끼리 정렬을 하여야 하는 문제가 있다. 따라서 n번째 문자를 기존 문자열 앞에 붙힘으로써 n을 기준으로 정렬하되 기존 문자열끼리의 정렬 또한 해결된다.
2. 정렬 후 정렬을 위해 쓰였던 첫번째 문자를 제외한 정렬된 기존 문자열을 가져와 저장한다.
'프로그래머스(JAVA)' 카테고리의 다른 글
나누어 떨어지는 숫자 배열 (0) | 2022.04.24 |
---|---|
두 정수 사이의 합 (0) | 2022.04.24 |
문자열 내 p와 y의 개수 (0) | 2022.04.17 |
문자열 내림차순으로 배치하기 (0) | 2022.04.17 |
문자열 다루기 기본 (0) | 2022.04.17 |