풀이
#include<iostream>
#include<map>
using namespace std;
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(nullptr);
cout.tie(nullptr);
int n;
cin >> n;
string A, B;
map<string, bool> dancing;
for (int i = 0; i < n; i++)
{
cin >> A >> B;
if (A == "ChongChong")
dancing.insert(make_pair(A, true));
if (B == "ChongChong")
dancing.insert(make_pair(B, true));
if (dancing[A] == true)
dancing[B] = true;
if (dancing[B] == true)
dancing[A] = true;
}
int cnt = 0;
for(pair<string, bool> d : dancing)
{
if (d.second == true)
cnt++;
}
cout << cnt;
return 0;
}
stl map은 <key, value> 로 저장된다는 점을 사용했다
처음엔 ChongChong을 입력받았을때 ChongChong의 value를 true로 만들어주고,
그 이후에는 서로 만나는 사람들을 true로 만들어주어서 마지막에 value가 true인 개수만 세주면 된다
'> 코딩테스트' 카테고리의 다른 글
[백준] 7785 회사에 있는 사람 (C++) (0) | 2023.10.27 |
---|---|
[백준] 2156 포도주 시식 (C++) (0) | 2023.08.09 |
[백준] 4948 베르트랑 공준 (C++) (0) | 2023.06.24 |
[백준] 1929 소수 구하기 (C++) (0) | 2023.06.22 |
[백준] 4134 다음 소수 (C++) (0) | 2023.06.22 |