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<string, int> 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<string, int>::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 |