본문 바로가기
알고리즘/문자와 문자열

11656 접미사 배열

by tryotto 2020. 1. 5.
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
#include <stdio.h>
#include <string>
#include <iostream>
#include <map>
 
using namespace std;
 
map<stringint> mp;
 
int main() {
    string str;
    cin >> str;
 
    int len = str.size();
    for (int i = 0; i < len; i++) {
        string tmp = str;
        tmp.erase(0, i);
 
        mp[tmp] = 1;
    }
 
    map<stringint>::iterator it;
    for (it = mp.begin(); it != mp.end(); it++) {
        cout << it->first << endl;
    }
}
cs

1. 사전식 배열을 하기 위해서, 앞선 문제들처럼 map 헤더를 사용했다.

2. 문자열의 일부를 삭제하기 위해서 string 클래스를 활용했다.
map 을 사용하기 위해서는 웬만하면 string 클래스를 이용해서 다뤄야 한다.
char 형으로 했다가, map 에 사용하려고 봤더니 자료형이 일치하지 않아서 사용하지 못했다.

3. string 클래스의 erase 함수가 유용하다.

4. map 의 모든 원소를 출력하기 위해, iterator 를 활용한다.


'알고리즘 > 문자와 문자열' 카테고리의 다른 글

10551 STROJOPIS  (0) 2020.01.06
5218 알파벳 거리  (0) 2020.01.05
1371 가장 많은 글자  (0) 2020.01.05
1764 듣보잡  (0) 2020.01.05
10546 배부른 마라토너  (0) 2020.01.05