[백준/C언어] 11656: 접미사 배열

문제 출처 :

https://www.acmicpc.net/problem/11656

코드

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#pragma warning(disable:4996)

int main(void) {

	char str1[1001]={ 0, };
	char str2[1001][1001] = { 0, };
	char temp[1001] = { 0, };

	
	scanf("%s", str1);

	int len = strlen(str1);

	for (int i = 0; i < len; i++) {
		for (int j = 0; j < len; j++) {
			str2[i][j-i] = str1[j];
		}
	}

	for (int i = 0; i < len - 1; i++) {
		for (int j = i; j < len - 1 - i; j++) {
			// str2[j] 가  str2[j+1] 보다 알파벳 순으로 뒤쪽이다.
			if (strcmp(str2[j], str2[j + 1]) > 0) {
				strcpy(temp, str2[j]);
				strcpy(str2[j], str2[j + 1]);
				strcpy(str2[j + 1], temp);
			}
		}
	}
	for (int i = 0; i < len; i++) {
		printf("%s\n", str2[i]);
	}

	return 0;
}

풀이

str2를 버블정렬과 strcmp,strcpy 문자열 함수를 사용하여 알파벳 순으로 정렬할 수 있었다.

느낀 점

간단한 문자열 함수 strcmp, strcpy를 까먹고 있었는데 다시 공부하는 기회였다.

좋은 웹페이지 즐겨찾기