한다 공부
[C++] 백준 알고리즘 1764번 듣보잡 본문
들어보지도 못한 사람 명단과
보지도 못한 사람 명단에서
중복되는 사람의 데이터를 찾는거다
map set 사용을 배웠기 때문에
이를 이용해보고자 함
#include<iostream>
#include<set>
#include<map>
using namespace std;
int main() {
int n, m;
map<string, int> name;
string temp;
cin >> n >> m;
while (n--) {
cin >> temp;
name[temp] = 1;
}
//듣지도(n) 보지도(m) 못한 사람의 명단을 set에 저장
set<string> output;
while (m--) {
cin >> temp;
if (name[temp] == 1)
output.insert(temp);
}
cout << output.size() << '\n';
for (auto i : output)
cout << i << '\n';
}
출력하면 잘 나온다.
여기서 짚고가고 싶은 부분은 set의 순회이다.
set의 순회는 iterator를 이용해서
//set s가 있다 하자
set<int>:: iterator i;
for (i = s.begin(); i != s.end(); i++)
cout<<*i<<' ';
이와 같이 순회를 해야한다.
그런데 auto를 쓰면 스스로 iterator임을 안다.
for (auto i = s.begin(); i != s.end(); i++)
cout<<*i<<' ';
위와 같이 쓸 수 있음
이를 향상시키면
for (auto i:s) cout<<i<<' ';
위와 같이 쓸 수 있다.
G
O
O
D
!
'Algorithm > 문제풀이' 카테고리의 다른 글
[C++] 백준 알고리즘 4358번 생태학 (0) | 2021.09.12 |
---|---|
[C++] 백준 알고리즘 14425번 문자열 집합 (0) | 2021.09.12 |
[C++] 백준 알고리즘 19363번 요요 시뮬레이션 (0) | 2021.09.12 |
[C++] 백준 알고리즘 10757번 큰 수 A+B (0) | 2021.09.12 |
[C++] 백준 알고리즘 11651번 좌표 정렬하기 2 (0) | 2021.09.09 |