[JAVA] 2023_0525 msg

박희현·2023년 5월 25일
0

MSG 코딩테스트

목록 보기
21/32

5/24 코딩테스트


문제 설명

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


풀이

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

우선 ArrayList와 Collections를 사용할 수 있도록 import하였다.
이 풀이를 한 번에 설명하자면 stinsgs[i]의 n번째 + strings[i]를 list에 한 번에 넣어 정렬한 후 substring()으로 n번째를 제외한 strings[i]를 출력한 것이다.
예를 들어 strings[i]가 car이고 n이 1이라면 "car"의 인덱스 1번째인 acar를 더하여 acar를 만든 뒤 list에 add(추가)한다. 그 후 Collections.sort()로 정렬하게 되면 n번째 글자를 기준으로 오름차순 정렬이라는 조건을 만족하게 된다. 하지만 앞의 n번째 글자는 나오면 안되므로 substring()을 사용해 n번째 글자를 제외한 문자열을 answer[i]에 넣는다.

profile
희현's velog

0개의 댓글