문제설명
입출력 예제
개념
ChongChong과 만난 사람은 무지개 댄스를 추게 되므로, key로 아이디를 갖고 value로 무지개 댄스 여부를 확인할 수 있는 map 자료구조를 사용하면 쉽게 풀 수 있다. 즉, 문자열을 검사해 총총이를 만났으면 value값을 true로 바꾸면 된다.
풀이
#include <iostream>
#include <map>
using namespace std;
int main()
{
int N, count = 0;
cin >> N;
map<string, bool> m;
string str1, str2;
사람들이 만난 기록의 수 N, 무지개 댄스를 추는 사람의 수 count, 이러한 정보를 기록할 맵 자료구조 m, 사람들의 이름을 초기화할 문자열 str1, str2을 초기화한다.
while (N--)
{
cin >> str1 >> str2;
if (str1 == "ChongChong")
m.insert({ str1, true });
else if (str2 == "ChongChong")
m.insert({ str2, true });
if (m[str1])
m[str2] = true;
if (m[str2])
m[str1] = true;
}
문자열 두 개를 입력받고, ChongChong이를 만났을 때 맵에 값을 삽입한다. 그리고 다른 사람의 bool 값을 true로 바꿔주면 된다.
for (auto& val : m)
{
if (val.second)
count++;
}
cout << count;
}
맵에 있는 자료들 중 value값이 true인 경우에 count를 늘리면 된다.
총합본
#include <iostream>
#include <map>
using namespace std;
int main()
{
int N, count = 0;
cin >> N;
map<string, bool> m;
string str1, str2;
while (N--)
{
cin >> str1 >> str2;
if (str1 == "ChongChong")
m.insert({ str1, true });
else if (str2 == "ChongChong")
m.insert({ str2, true });
if (m[str1])
m[str2] = true;
if (m[str2])
m[str1] = true;
}
for (auto& val : m)
{
if (val.second)
count++;
}
cout << count;
}
반응형
'Algorithm > 백준' 카테고리의 다른 글
[백준] 20920 영단어 암기는 괴로워 with C++ (0) | 2023.05.05 |
---|---|
[백준] 2108 통계학 with C++ (0) | 2023.05.04 |
[백준] 25192 인사성 밝은 곰곰이 with C++ (0) | 2023.05.02 |
[백준] 13909 창문 닫기 with C++ (4) | 2023.05.01 |
[백준] 17103 골드바흐 파티션 with C++ (0) | 2023.04.29 |