본문으로 바로가기

[백준 11656] 접미사 배열 문제

category PS/백준 문제풀이 2018. 3. 30. 01:14
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

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


접미사 문제다. 문자열안의 substring들은 substr() 함수를 통해 쉽게 구할 수 있다.

쉽게 정렬하기 위해 vector(vector 헤더)를 사용했고 생겨나는 접미사들은 vector 안에 넣어뒀다.

모두 생성 후 sort 함수(algorithm 헤더)를 이용하여 순서대로 정렬한 뒤 출력했다.


#####Vector에 대하여#####


vector는 c++에서 동적 배열을 의미한다. 

선언은 vector<자료형> 변수명; 으로 선언 가능하며 넣을 때는 push_back(넣을 자료) 함수를 사용하면 된다.

벡터에서 자료를 볼 때 at(인덱스)함수를 쓰거나 배열 참조처럼 [인덱스]를 사용해도 되나

at 함수는 예외처리로 인해 속도가 조금 느려 확실하게 짚고 넘어가야할 프로그램에서 사용하는 게 좋다.


size() 함수는 벡터 안 자료의 개수를 리턴함.

capacity() 함수는 할당된 메모리의 크기를 리턴함.


더 자세한 내용은 아래 블로그를 참고하면 좋을 듯하다.

http://hyeonstorage.tistory.com/324


######################



소스 코드는 다음과 같이 작성했다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
 
using namespace std;
 
int main() {
    ios_base::sync_with_stdio(false);
    
    string s;
    cin >> s;
 
    vector<string> strVector;
    string temp;
 
    strVector.push_back(s);
    for (int i = 1; i < s.size(); i++) {
        temp = s.substr(i, s.size() - 1);
        strVector.push_back(temp);
    }
 
    sort(strVector.begin(), strVector.end());
 
    for (string t : strVector)
        cout << t << endl;
 
    return 0;
}
cs


'PS > 백준 문제풀이' 카테고리의 다른 글

[백준 2581] 소수  (0) 2019.08.05
[백준 1008] A/B  (0) 2019.08.05
[백준 10809] 알파벳 찾기  (0) 2018.03.30
[백준 10808] 알파벳 개수 문제  (0) 2018.03.29
[백준 1158] 조세퍼스 순열 문제  (0) 2018.03.28