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

nn1co1·2022년 10월 4일
0

프로그래머스 Lv.1

목록 보기
13/13

문제 바로가기

초기 코드

class Solution {
    public String[] solution(String[] strings, int n) {
        String[] answer = {};
        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]); //(1)
        }
        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());//(2)
        }
        return answer;
    }
}

(1) arr라는 리스트에 담을건데, i번째 단어의 n번째 글자를 담는다. 대신 +를 사용해 i번째 단어도 통째로 붙여둔다. 뒤에서 정렬을 수월하게 하려고 그런 것 같다.
(2)answer 배열에 정렬해둔 arr를 가공해서 담아야 한다. 정렬되어 있으니 순서대로 담으면 되고, get(i)로 i번째 원소를 가져온다. 대신 substring(시작값,종료값)을 써서 맨 앞에 붙어있던 n번째 글자는 떼고 가져온다는 게 핵심이었다.

아쉬운 점

아쉬울 것도 없고 문자열 문제라면 일단 겁부터 먹고 보는 게 제일.. 커다란 문제다;

0개의 댓글