본문 바로가기
  • Let's study
PS/백준

[C++] 백준 11656: 접미사 배열

by 코딩고수이고파 2023. 4. 27.

문제

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

 

11656번: 접미사 배열

첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000보다 작거나 같다.

www.acmicpc.net

 

해결방법

1. 입력 받은 문자열을 substr 함수를 이용하여 각각의 접미사를 따로 배열에 저장한다. substr은 (시작지점, 길이)를 전달받아 부분 문자열을 리턴하므로 시작지점을 0~문자열 길이-1까지 넣어주면 된다.

2. sort를 사용하여 정렬 후 출력한다.

 

코드

#include<iostream>
#include<string>
#include<algorithm>

using namespace std;

int main() {
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);

	string str;
	cin >> str;
	string arr[1001];

	for (int i = 0; i < str.length(); i++) {
		arr[i] = str.substr(i, str.length());
	}

	sort(arr, arr + str.length());

	for (int i = 0; i < str.length(); i++) {
		cout << arr[i] << '\n';
	}

	return 0;
}

댓글