본문 바로가기

Algorithm

[Algorithm/Java][프로그래머스] 문자열 내 마음대로 정렬하기

반응형

[프로그래머스] 문자열 내 마음대로 정렬하기

https://programmers.co.kr/learn/courses/30/lessons/12915

문제접근

문자열에서 n번째 문자로 먼저 정렬하고 나머지는 사전순으로 정렬을 해야하기 때문에 기존에 sort 알고리즘으로는 정렬을 할 수가 없어서 Comparator에 compare함수를 직접 커스텀해서 Arrays.sort를 사용하였다.

Code

import java.util.*;
class Solution {
    public String[] solution(String[] strings, int n) {
        Arrays.sort(strings,new Comparator<String>() {
            @Override
            public int compare(String s1, String s2){
                if(s1.charAt(n) == s2.charAt(n)){
                    return s1.compareTo(s2);
                } else {
                    return s1.charAt(n) - s2.charAt(n);
                }
            }
        });
        return strings;
    }
}

어려웠던 점/ 배운 점

Arrays.sort에서 두 번째 매개변수에서 Comparator를 새로 만들어서 compare함수를 오버라이드 하는 방식으로 커스텀해서 정렬하는 방식을 사용했다. 이와 같은 방법으로 배열 뿐만 아니라 컬렉션들을 정렬할 때도 동일한 방식으로 사용할 수 있다.

반응형