https://school.programmers.co.kr/learn/courses/30/lessons/42576
๋ฌธ์ ์ค๋ช
์๋ง์ ๋ง๋ผํค ์ ์๋ค์ด ๋ง๋ผํค์ ์ฐธ์ฌํ์์ต๋๋ค. ๋จ ํ ๋ช ์ ์ ์๋ฅผ ์ ์ธํ๊ณ ๋ ๋ชจ๋ ์ ์๊ฐ ๋ง๋ผํค์ ์์ฃผํ์์ต๋๋ค.
๋ง๋ผํค์ ์ฐธ์ฌํ ์ ์๋ค์ ์ด๋ฆ์ด ๋ด๊ธด ๋ฐฐ์ด participant์ ์์ฃผํ ์ ์๋ค์ ์ด๋ฆ์ด ๋ด๊ธด ๋ฐฐ์ด completion์ด ์ฃผ์ด์ง ๋, ์์ฃผํ์ง ๋ชปํ ์ ์์ ์ด๋ฆ์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
- ๋ง๋ผํค ๊ฒฝ๊ธฐ์ ์ฐธ์ฌํ ์ ์์ ์๋ 1๋ช ์ด์ 100,000๋ช ์ดํ์ ๋๋ค.
- completion์ ๊ธธ์ด๋ participant์ ๊ธธ์ด๋ณด๋ค 1 ์์ต๋๋ค.
- ์ฐธ๊ฐ์์ ์ด๋ฆ์ 1๊ฐ ์ด์ 20๊ฐ ์ดํ์ ์ํ๋ฒณ ์๋ฌธ์๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- ์ฐธ๊ฐ์ ์ค์๋ ๋๋ช ์ด์ธ์ด ์์ ์ ์์ต๋๋ค.
์ ์ถ๋ ฅ ์
participant | completion | return |
["leo", "kiki", "eden"] | ["eden", "kiki"] | "leo" |
["marina", "josipa", "nikola", "vinko", "filipa"] | ["josipa", "filipa", "marina", "nikola"] | "vinko" |
["mislav", "stanko", "mislav", "ana"] | ["stanko", "ana", "mislav"] | "mislav" |
์ ์ถ๋ ฅ ์ ์ค๋ช
์์ #1 "leo"๋ ์ฐธ์ฌ์ ๋ช ๋จ์๋ ์์ง๋ง, ์์ฃผ์ ๋ช ๋จ์๋ ์๊ธฐ ๋๋ฌธ์ ์์ฃผํ์ง ๋ชปํ์ต๋๋ค.
์์ #2 "vinko"๋ ์ฐธ์ฌ์ ๋ช ๋จ์๋ ์์ง๋ง, ์์ฃผ์ ๋ช ๋จ์๋ ์๊ธฐ ๋๋ฌธ์ ์์ฃผํ์ง ๋ชปํ์ต๋๋ค.
์์ #3 "mislav"๋ ์ฐธ์ฌ์ ๋ช ๋จ์๋ ๋ ๋ช ์ด ์์ง๋ง, ์์ฃผ์ ๋ช ๋จ์๋ ํ ๋ช ๋ฐ์ ์๊ธฐ ๋๋ฌธ์ ํ๋ช ์ ์์ฃผํ์ง ๋ชปํ์ต๋๋ค.
๋ด ํด๋ต
#include <unordered_map>
#include <string>
#include <vector>
using namespace std;
string solution(vector<string> participant, vector<string> completion)
{
unordered_map<string, int> mapResult{};
string answer = "";
for (auto p : participant)
{
unordered_map<string, int>::iterator iter = mapResult.find(p);
if(iter == mapResult.end())
mapResult.insert(make_pair(p, 1));
else
iter->second += 1;
}
for (auto c : completion)
{
mapResult.find(c)->second -= 1;
}
for (auto p : mapResult)
{
if (p.second != 0)
{
answer = p.first;
break;
}
}
return answer;
}
์๋ฃ๊ตฌ์กฐ unordered_map์ ์ด์ฉํ์ฌ ์ฐธ๊ฐ์์ ์ด๋ฆ๊ณผ ํด๋น ์ด๋ฆ์ ์ฐธ๊ฐ์ ์๋ฅผ ์ ์ฅํ๋ค.
์ฐธ๊ฐ์๊ฐ ์์ฃผํ์ ๊ฒฝ์ฐ ๋งต์์ ํด๋น ์ด๋ฆ์ ์ฐธ๊ฐ์ ์๋ฅผ ์ค์ธ๋ค.
๋ชจ๋ ์์ฃผ์๋ฅผ ์ฒดํฌํ ๋ค์๋ ์ฌ์ ํ ์ฐธ๊ฐ์ ์๊ฐ 0์ด ์๋ ์ด๋ฆ์ ์ ๋ต์ผ๋ก ๋ฐํํ๋ค.
'๐ฅ๏ธ Study Note > Coding Test' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
programmers / level.3 / ๋ฒ ์คํธ์จ๋ฒ(C++) (0) | 2023.03.14 |
---|---|
programmers / level.2 / ์์ฅ(C++) (0) | 2023.03.13 |
programmers / level.1 / ํฐ์ผ๋ชฌ(C++) (0) | 2023.02.06 |
programmers / level.2 / ์ซ์์ ํํ(C++) (0) | 2023.01.11 |
programmers / level.2 / ์ด์ง ๋ณํ ๋ฐ๋ณตํ๊ธฐ(C++) (0) | 2023.01.11 |