티스토리 뷰

Algorithm/BOJ

백준 1764번 C++

poopooreum 2023. 7. 25. 20:03
반응형
백준 1764번 듣보잡

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

1764번: 듣보잡

첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다.

www.acmicpc.net


정답 코드

#include<iostream>
#include<map>
#include<string>
#include<vector>
using namespace std;
int main() {
	map<string, int>mp;
	vector < string > p;
	int n, m;
	string input;
	cin >> n >> m;
	for (int x = 0; x < n + m; x++) {
		cin >> input;
		mp[input]++;
	}
	for (auto iter = mp.begin(); iter != mp.end(); iter++) {
		if (iter->second > 1)
			p.push_back(iter->first);
	}
	cout << p.size() << endl;
	for (int x = 0; x < p.size(); x++)
		cout << p[x] << endl;
}

문제 풀이

자료구조 map을 이용해서 풀 수 있습니다.  map은 중복이 허용되지 않는다는 특징이 있습니다. N개의 문장과 M개의 문장을 입력받는 동시에 map[index]++을 해줍니다. mapkey value로 이루어져 있고 이 문제에서 key는 문자열이고 value횟수입니다. 그래서 위 문장처럼 선언하면 문자열에 해당되는 value가 증가합니다. 이렇게 하고 나서 iterator를 이용하면 됩니다. iter->second>1이면 듣보잡이므로 이에 해당되는
문장을
vector에 추가하면 됩니다.

반응형

'Algorithm > BOJ' 카테고리의 다른 글

백준 1806번 C++  (0) 2023.07.30
백준 1780번 C++  (0) 2023.07.26
백준 1753번 C++  (0) 2023.07.25
백준 1748번 C++  (0) 2023.07.25
백준 1747번 C++  (0) 2023.07.25
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
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
글 보관함