728x90
반응형
문제 설명
어떤 문자열에 대해서 접미사는 특정 인덱스부터 시작하는 문자열을 의미합니다. 예를 들어, "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"]
입출력 설명
입출력 예 #1
예제 1번의 my_string는 "banana"로 모든 접미사는 문제의 설명과 같습니다. 이를 사전순으로 정렬하면 "a", "ana", "anana", "banana", "na", "nana"이므로 ["a", "ana", "anana", "banana", "na", "nana"]를 return 합니다.
입출력 예 #2
예제 2번의 my_string는 "programmers"이고 모든 접미사는 "programmers", "rogrammers", "ogrammers", "grammers", "rammers", "ammers", "mmers", "mers", "ers", "rs", "s"입니다. 이를 사전순으로 정렬한 문자열 배열 ["ammers", "ers", "grammers", "mers", "mmers", "ogrammers", "programmers", "rammers", "rogrammers", "rs", "s"]를 return 합니다.
내 풀이
Java
import java.util.*;
class Solution {
public String[] solution(String my_string) {
String[] answer = {};
List<String> list = new ArrayList<>();
for(int i = my_string.length(); i > 0; i--){
list.add(my_string.substring(i - 1, my_string.length()));
}
Collections.sort(list);
answer = new String[list.size()];
for(int i = 0; i < list.size(); i++){
answer[i] = list.get(i);
}
return answer;
}
}
C
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
// 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요.
char** solution(const char* my_string) {
// return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
char** answer = (char**)malloc(sizeof(char*) * strlen(my_string));
int i;
for(i = 0; i < strlen(my_string); i++){
answer[i] = &my_string[i];
}
char* tmp = NULL;
for(i = 0; i < strlen(my_string); i++){
for(int j = 0; j < strlen(my_string); j++){
if(strcmp(answer[i], answer[j]) < 0){
tmp = answer[j];
answer[j] = answer[i];
answer[i] = tmp;
}
}
}
return answer;
}
Python
def solution(my_string):
answer = [my_string[i:] for i in range(len(my_string))]
answer = sorted(answer)
return answer
https://school.programmers.co.kr/learn/courses/30/lessons/181909
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
728x90
반응형
'코딩테스트 > 프로그래머스 기초' 카테고리의 다른 글
[코딩테스트 Lv.0] 부분 문자열 이어 붙여 문자열 만들기 (13) | 2025.03.18 |
---|---|
[코딩테스트 Lv.0] 문자열의 뒤의 n글자 (2) | 2025.03.17 |
[코딩테스트 Lv.0] 접미사인지 확인하기 (2) | 2025.03.14 |
[코딩테스트 Lv.0] 문자열의 앞의 n글자 (4) | 2025.03.14 |
[코딩테스트 Lv.0] 접두사인지 확인하기 (1) | 2025.03.14 |