Development Logs/Algorithms

[JAVA] 프로그래머스 : 문자열 내 마음대로 정렬하기 (Level 1)

유뱅유뱅뱅 2020. 8. 28. 13:09

https://programmers.co.kr/learn/courses/30/lessons/12915?language=java

 

코딩테스트 연습 - 문자열 내 마음대로 정렬하기

문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 [sun, bed, car]이고 n이 1이면 각 단어의 인덱스 1�

programmers.co.kr

해결 방안

Comparator를 활용하여 n번째 index 값을 strings[i] 앞에 붙여서 순서를 정렬하였습니다.

코드

import java.util.*;
// 문자열 내 마음대로 정렬하기
class Solution {
    // strings 길이 1~50
    // strings[i] 길이 1~100
    public String[] solution(String[] strings, int n) {
        String[] answer = new String[strings.length];
        
        Arrays.sort(strings, new Comparator<String>(){
            @Override
            public int compare(String s1, String s2){
                return ((s1.charAt(n)+"")+s1).compareTo(((s2.charAt(n)+"")+s2));
            }
        });
        
        for(int i=0; i<strings.length; i++){
            answer[i] = strings[i];
        }
        
        return answer;
    }
}