-
반응형
https://www.acmicpc.net/problem/14425
14425번: 문자열 집합
첫째 줄에 문자열의 개수 N과 M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)이 주어진다. 다음 N개의 줄에는 집합 S에 포함되어 있는 문자열들이 주어진다. 다음 M개의 줄에는 검사해야 하는 문자열들이 주어
www.acmicpc.net
풀이
트라이 알고리즘을 이용하여 문제를 해결해도 되는데, 그보다 더 간단한 Map 자료구조를 이용하여 문제를 해결했다. Key를 입력받은 N개의 문자열로 하고, 그 문자열에 대한 value를 모두 true로 셋팅을 해준뒤 , m개의 문자열을 입력받으면서, map안에 해당 문자열에 대한 value값이 true인지 체크를 해주며, true면 cnt를 1 증가시킨다.
코드
#include<iostream> #include<algorithm> #include<string> #include<map> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); map<string, bool> ma; int n, m; cin >> n >> m; for (int i = 0; i < n; i++) { string input; cin >> input; ma[input] = true; } int cnt = 0; for (int i = 0; i < m; i++) { string input; cin >> input; if (ma[input]) { cnt++; } } cout << cnt << "\n"; return 0; }
반응형'문제풀이 > 백준oj' 카테고리의 다른 글
[백준OJ] 14600번 샤워실 바닥 깔기 (Small) (0) 2021.08.20 [백준OJ] 9421번 소수상근수 (0) 2021.08.19 [백준OJ] 9935번 문자열 폭발 (0) 2021.08.18 [백준OJ] 11779번 최소비용 구하기 2 (0) 2021.08.17 [백준OJ] 1916번 최소비용 구하기 (0) 2021.08.17 댓글