반응형
프로그래머스 사이트에 있는 코딩 테스트 문제 "접미사 배열"을 풀었다.
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
// 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요.
char** solution(const char* my_string) {
// return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
int len = strlen(my_string);
char** answer = (char**)malloc(sizeof(char *) * len);
// 모든 접미사를 구한다.
for(int i = 0;i < len;i++) {
answer[i] = (char *)malloc(len - i + 1);
answer[i][len - i] = '\0';
strncpy(answer[i], &my_string[i], len - i);
}
// 순서대로 정렬한다. (버블 정렬을 사용)
for(int i = 0;i < len - 1;i++) {
for(int j = len - 1;j > i;j--) {
if(strcmp(answer[j], answer[j - 1]) < 0) {
char** tmp = answer[j];
answer[j] = answer[j - 1];
answer[j - 1] = tmp;
}
}
}
return answer;
}반응형



