프로그래머스코딩테스트연습풀이/C언어
[프로그래머스/C언어] 접미사 배열
코코쵸마
2023. 8. 14. 15:54
문제
어떤 문자열에 대해서 접미사는 특정 인덱스부터 시작하는 문자열을 의미합니다. 예를 들어, "banana"의 모든 접미사는 "banana", "anana", "nana", "ana", "na", "a"입니다.
문자열 my_string이 매개변수로 주어질 때, my_string의 모든 접미사를 사전순으로 정렬한 문자열 배열을 return 하는 solution 함수를 작성해 주세요.
솔루션
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
// 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요.
char** solution(const char* my_string) {
// return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
char** answer = (char**)malloc(strlen(my_string) * sizeof(char*));
for(int i = 0; i < strlen(my_string); i++)
answer[i] = (char*)malloc(strlen(my_string) * sizeof(char));
int n = 0;
int m = 0;
for(int i = 0; i < strlen(my_string); i++)
{
for(int j = i; j < strlen(my_string); j++)
answer[n][m++] = my_string[j];
answer[n][m] = '\0';
n++;
m = 0;
}
char* tmp;
for(int i = 0; i < strlen(my_string) - 1; i++)
for(int j = i + 1; j < strlen(my_string); j++){
if(strcmp(answer[i], answer[j]) > 0)
{
tmp = answer[i];
answer[i] = answer[j];
answer[j] = tmp;
}
}
return answer;
}
https://school.programmers.co.kr/learn/courses/30/lessons/181909
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr