접미사 배열

nacSeo (낙서)·2024년 1월 25일
0

프로그래머스

목록 보기
39/169

문제 설명

어떤 문자열에 대해서 접미사는 특정 인덱스부터 시작하는 문자열을 의미합니다. 예를 들어, "banana"의 모든 접미사는 "banana", "anana", "nana", "ana", "na", "a"입니다.
문자열 my_string이 매개변수로 주어질 때, my_string의 모든 접미사를 사전순으로 정렬한 문자열 배열을 return 하는 solution 함수를 작성해 주세요.

제한 사항

my_string은 알파벳 소문자로만 이루어져 있습니다.
1 ≤ my_string의 길이 ≤ 100

나의 코드

import java.util.*;

class Solution {
    public String[] solution(String my_string) {
        List<String> list = new ArrayList<>();
        for(int i=0; i<my_string.length(); i++) {
            list.add(my_string.substring(i));
        }
        Collections.sort(list);
        String[] answer = list.toArray(new String[list.size()]);
        return answer;
    }
}
  1. substring 메서드를 사용하여 접미사들 List에 저장
  2. Collections.sort() 메서드를 사용하여 사전순으로 정렬
  3. toArray 메서드를 사용하여 List를 String배열로 변환

다른 사람 코드

import java.util.Arrays;

class Solution {

    public String[] solution(String my_string) {
        String[] answer = new String[my_string.length()];

        for (int i = 0; i < answer.length; i++) {
            answer[i] = my_string.substring(i, my_string.length());
        }

        Arrays.sort(answer);
        return answer;
    }
}

배열에서 접미사를 넣고 변환

느낀 점

습관적으로 배열로 나오는 문제는 배열 크기를 신경쓰기 번거로워서 List로 값들을 넣어준 후 마지막에 변환하는 방법을 사용하게 되는데, 다른 사람 코드를 보니 이 문제는 배열로도 바로 풀 수 있었다.

profile
백엔드 개발자 김창하입니다 🙇‍♂️

0개의 댓글