본문 바로가기
프로그래머스/[프로그래머스 - JAVA] Lv.1

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

by 코딩하는 흰둥이 2023. 4. 3.

 


  • 내 풀이
import java.util.Arrays;
import java.util.Collections;
import java.util.ArrayList;

class Solution {
    public String[] solution(String[] strings, int n) {
        String[] answer = {};
        
        // strings 개수와 같이 때문에 초기화
        answer = new String[strings.length];
        // n 번째의 문자열을 담을 list
        ArrayList<String> list = new ArrayList<>();

        // 문자열이 같은 경우가 있기 때문에 문자열에서부터 sort를 한다
        Arrays.sort(strings);
        
        // n 번째의 문자를 담아줌
        for (int i = 0; i < strings.length; i++) {
            list.add(strings[i].charAt(n)+strings[i]);
        }
        // 담은 문자를 오름차순으로
        Collections.sort(list);
        for (int i = 0; i < list.size(); i++) {
            answer[i] = list.get(i).substring(1, list.get(i).length());
        }
        
        
        return answer;
    }
}

다른 분들 풀이보고 참고해서 풀었음

문자를 앞에다가 붙여서 순차적으로 하면 편하다

 

  • 다른 사람 풀이
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;
    }
}

댓글