문제 풀이 (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

+ Recent posts