프로그래머스 접미사 배열

KIMYEONGJUN·2026년 5월 30일
post-thumbnail

문제

내가 생각했을때 문제에서 원하는부분

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

내가 이 문제를 보고 생각해본 부분

testStrings 배열에 "banana"와 "programmers" 두 문자열을 넣어, 두 케이스에 대해 테스트하도록 구성했다.
for 반복문은 이 배열을 돌면서 각 문자열에 대해 solution 메서드를 호출해 접미사 배열을 구한다.
Arrays.toString(result)로 반환된 문자열 배열을 읽기 쉽게 출력한다.
solution 메서드의 역할은 다음과 같다.
입력 문자열 my_string의 길이를 구해 length에 저장한다.
접미사 개수는 문자열 길이와 같으므로, 같은 길이의 문자열 배열 suffixes를 선언한다.
반복문을 돌며 my_string.substring(i)로 인덱스 i부터 끝까지의 접미사 문자열을 뽑아 suffixes 배열에 순서대로 저장한다.
접미사 배열을 Arrays.sort(suffixes)를 통해 알파벳 사전 순서대로 정렬한다.
정렬된 배열을 반환한다.
결과적으로 이 코드는 "banana"와 "programmers"에서 나올 수 있는 모든 접미사를 추출해 알파벳 순으로 정리하여 각각 출력한다.

코드로 구현

import java.util.Arrays;

class Solution {
    public String[] solution(String my_string) {
        int length = my_string.length();
        String[] suffixes = new String[length];

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

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

프로그래머스 코드

package programmers;

import java.util.Arrays;

// 프로그래머스 접미사 배열
public class Main36 {
    public static void main(String[] args) {
        String[] testStrings = {"banana", "programmers"};

        for (String my_string : testStrings) {
            String[] result = solution(my_string);
            System.out.println(Arrays.toString(result));
        }
    }

    public static String[] solution(String my_string) {
        int length = my_string.length();
        String[] suffixes = new String[length];

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

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

위에 있는 코드를 변경한 코드

마무리

코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.

profile
Junior backend developer

0개의 댓글