본문 바로가기

Coding Test/프로그래머스

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

import java.util.*;

class Solution {
    public String[] solution(String[] strings, int n) {
        Arrays.sort(strings);

        String[] result = new String[strings.length];
        for(int i=0; i< strings.length; i++){
            result[i] = strings[i].substring(n, n+1);
        }
        Arrays.sort(result);

        List<String> list = new ArrayList<>(Arrays.asList(strings));
        for(int i=0; i<result.length; i++){
            for(int j=0; j<list.size(); j++){
                if(result[i].equals(list.get(j).substring(n, n+1))){
                    result[i] = list.get(j);
                    list.remove(j);
                    break;
                }
            }
        }
        
        return result;
    }
}


import java.util.*;

class Solution {
    public String[] solution(String[] strings, int n) {
        String[] answer = {};
        ArrayList<String> arr = new ArrayList<>();
        for (int i = 0; i < strings.length; i++) {
            arr.add("" + strings[i].charAt(n) + strings[i]);
        }
        Collections.sort(arr);
        answer = new String[arr.size()];
        for (int i = 0; i < arr.size(); i++) {
            answer[i] = arr.get(i).substring(1, arr.get(i).length());
        }
        return answer;
    }
}

풀이2(다른 분의 풀이)

해당 인덱스의 글자를 앞에 붙여서 정렬한다. 효율은 떨어지지만 너무 기발한 방법...