Algorithm/백준
[백준] 26069 붙임성 좋은 총총이 with C++
nowkoes
2023. 5. 3. 00:00
문제설명

입출력 예제

개념
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;
}
반응형