728x90
● [문제번호 11656] 접미사 배열
https://www.acmicpc.net/problem/11656
● 알아야 할 것
: vector 자료구조와 메소드
● 풀이 과정
: 문자열을 입력 받고 문자열을 앞에서 한글자씩 옮기면서 나머지 문자열을 vector에 저장한다
예를 들어 backjoon
v[0] = backjoon
v[1] = ackjoon
v[2] = ckjoon
v[3] = kjoon ..
그다음 정렬 후 출력하면 된다.
● 주의 할 것
: vector 정렬 시
sort(vector.begin( ), vector.end( ));
// sort(vector, vector + num) 이 아니다.
● 참고 할 것
: NULL
● 풀이 코드
#include <bits/stdc++.h>
using namespace std;
// 각 자른 문자열을 저장할 vector
vector<string> v;
// 초기 입력받을 string
string str;
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin >> str;
v.assign(str.length(), "");
// 문자열을 앞에서 한글자씩 옮기면서 나머지 문자열을 vector에 저장한다
// 예를 들어 backjoon
// v[0] = backjoon
// v[1] = ackjoon
// v[2] = ckjoon
// v[3] = kjoon ..
for(int s = 0; s < str.length(); s++)
v[s] = str.substr(s, str.length());
// 문자열 사전 순으로 정렬
// sort(v, v + str.length()) 와 같이 사용 X
sort(v.begin(), v.end());
// vector의 각 원소 출력
for(auto el : v)
cout << el << "\n";
return 0;
}
● [백준] - [알고리즘 기초 1/2] - [203 - 자료구조 1 (참고)] 문제집
번호 | 문제 번호 | 문제 이름 | 풀이 링크 |
1 | 1935 | 후위 표기식2 | https://pirateturtle.tistory.com/170 |
2 | 1918 | 후위 표기식 | https://pirateturtle.tistory.com/171 |
3 | 10808 | 알파벳 개수 | https://pirateturtle.tistory.com/172 |
4 | 10809 | 알파벳 찾기 | https://pirateturtle.tistory.com/173 |
5 | 10820 | 문자열 분석 | https://pirateturtle.tistory.com/174 |
6 | 2743 | 단어 길이 재기 | https://pirateturtle.tistory.com/175 |
7 | 11655 | ROT13 | https://pirateturtle.tistory.com/176 |
8 | 10824 | 네 수 | https://pirateturtle.tistory.com/177 |
9 | 11656 | 접미사 배열 | https://pirateturtle.tistory.com/178 |
728x90
'Baekjoon > [Code.plus] 알고리즘 기초 1/2' 카테고리의 다른 글
[BOJ/백준] 1934 최소공배수 (0) | 2021.07.28 |
---|---|
[BOJ/백준] 2609 최대공약수와 최소공배수 (0) | 2021.07.28 |
[BOJ/백준] 10430 나머지 (0) | 2021.07.28 |
[BOJ/백준] 10824 네 수 (0) | 2021.07.27 |
[BOJ/백준] 11655 ROT13 (0) | 2021.07.27 |
[BOJ/백준] 2743 단어 길이 재기 (0) | 2021.07.27 |
[BOJ/백준] 10820 문자열 분석 (0) | 2021.07.27 |
댓글