Coding Test/프로그래머스

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

똧이 2022. 3. 18. 18:28
반응형

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

 

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

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

programmers.co.kr

 

 

 

import java.util.Arrays;

class Solution {
    public String[] solution(String[] strings, int n) {
        // 만약 strings[]가 ["sun", "bed", "car"]라고 한다면

        for(int i = 0; i < strings.length; i++){
            strings[i] = strings[i].charAt(n) + strings[i];
        }
        /*
            *  strings[i] = strings[i].charAt(n) + strings[i];

            ex. strings[i]가 sun일 때, n = 1일 때
                strings[i] = u + sun = usun;
            ex. strings[i]가 bed일 때, n = 1일 때
                strings[i] = e + bed = ebed;

            ==> strings[]은 ["usun", "ebed", "acar"] 가 됨.
        */

        Arrays.sort(strings); // strings 배열을 오름차순으로 정렬해줌 ==> ["acar", "ebed", "usun"]
        // 문제: 사전순으로 앞선 문자열이 앞쪽에 위치합니다. = 오름차순

        for(int i = 0; i < strings.length; i++){
            strings[i] = strings[i].substring(1);
        }

        /*
            정렬된 strings 배열을 반복문을 돌리면서 맨 앞글자를 제외한 단어를 다시 배열에 넣음

            ex. "acar".substring(1); = "car"
            ex. "ebed".substring(1); = "bed"
            ex. "usun".substring(1); = "sun"

            ==> ["car", "bed", "sun"]
        */

        return strings;
    }
}
728x90