백준/문자열
백준 14425 c++ "문자열 집합" -PlusUltraCode-
PlusUltraCode
2025. 3. 21. 15:30
https://www.acmicpc.net/problem/14425
[필자 사고]
필자는 map 을 이용하여 이 문제를 해결했따.
해당 문자열이 map 배열에 있다면 count 수를 증가시키는 형태로 문제를 풀었다.
[코드 해설]
2. Input 함수
- N과 M을 입력받습니다.
- 이후 N개의 문자열을 입력받아 map에 저장합니다.
- myMap.insert({ str, 1 })를 통해 중복 없이 저장됩니다.
- 이 map은 일종의 사전(dictionary) 역할을 합니다.
3. Game_Start 함수
- M개의 문자열을 하나씩 입력받습니다.
- 각 문자열이 myMap에 존재하는지 find()를 통해 확인합니다.
- 존재하면 resultCount를 1 증가시킵니다.
- resultCount를 출력합니다.
- 즉, 첫 번째 그룹에 존재하는 문자열이 두 번째 그룹에 몇 개 있었는지를 출력합니다.
[소스 코드]
#include <iostream>
#include <cstring>
#include <vector>
#include <map>
using namespace std;
map<string, int> myMap;
string str;
void Input() {
cin >> str;
}
void Game_Start() {
for (int i = 0; i < str.size(); i++) {
string strTank = "";
for (int k = i; k < str.size(); k++) {
strTank += str[k];
myMap.insert({ strTank,1 });
}
}
cout << myMap.size();
}
int main(void) {
Input();
Game_Start();
}