프로그래머스/Lv. 0(코딩 기초 트레이닝)

[프로그래머스 코딩테스트] 접미사 배열(Java)

Sigfriede 2023. 5. 18. 01:00

  문제 설명

  어떤 문자열에 대해서 접미사는 특정 인덱스부터 시작하는 문자열을 의미합니다. 예를 들어. "banana"의 모든 접미사는 "banana", "anana", "nana", "ana", "na", "a"입니다.

  문자열 my_string이 매개변수로 주어질 때, my_string의 모든 접미사를 사전순으로 정렬한 문자열 배열을 return 하는 solution 함수를 작성해 주세요.

 

  제한사항

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

 

  입출력 예

my_string result
"banana" ["a", "ana", "anana", "banana", "na", "nana"]
"programmers" ["ammers", "ers", "grammers", "mers", "mmers", "ogrammers", "programmers", "rammers", "rogrammers". "rs", "s"]
import java.util.Arrays;
class Solution {
    public String[] solution(String my_string) {
        String[] answer = new String[my_string.length()];
        for (int i = 0; i < my_string.length(); i++) {
            answer[i] = my_string.substring(i, my_string.length());
        }
        Arrays.sort(answer);
        return answer;
    }
}

  answer 배열을 생성합니다. 문자열을 한 자씩 자른다는 가정 하에 배열의 크기는 my_string의 길이와 동일합니다.

  for문이 my_string의 길이만큼 순회합니다. answer의 i번째 원소에는 substring을 이용하여 my_string을 자른 문자열을 할당합니다. 각 인자에는 i와 my_string의 길이를 넣음으로써 0번 위치에서 문자열 끝까지 자르고, i가 점차 커지며 1번 위치에서, 2번 위치에서 자른 문자열을 차례로 answer에 할당합니다.

  문제에서는 사전순으로 정렬한 배열을 원하므로, Arrays 클래스의 sort 메소드를 이용하여 값 전체가 삽입된 answer 배열을 반환하기 전 정렬합니다.