๋ฌธ์ : https://school.programmers.co.kr/learn/courses/30/lessons/42576
์นดํ ๊ณ ๋ฆฌ : ํด์
ํ ๋ช ์ ์ ์๋ฅผ ์ ์ธํ๊ณ , ๋ชจ๋ ์ ์๋ค์ด ์์ฃผํ์๊ธฐ ๋๋ฌธ์ participant ๋ฐฐ์ด์ ๊ธธ์ด๋ completion ๋ฐฐ์ด์ ๊ธธ์ด๋ณด๋ค 1 ํด ๊ฒ์ด๋ค.
๋ํ, ์ฐธ๊ฐ์ ์ค์๋ ๋๋ช ์ด์ธ์ด ์์ ์๋ ์๊ธฐ ๋๋ฌธ์, ๊ฐ ์ฐธ๊ฐ์๋ค์ ์ด๋ฆ์ map์ key๋ก ์ค์ ํ๊ณ ์ด๋ฆ์ ํด๋นํ๋ ์ฐธ๊ฐ์์ ์๋ฅผ value๋ก ์ค์ ํด์ฃผ์๋ค.
paricipant ๋ฐฐ์ด์ ์ํํ๋ฉฐ map์์ ๊ฐ ์ฐธ๊ฐ์ ์ด๋ฆ ๊ฐ key์ ๋ํ value๋ฅผ 1์ฉ ์ฆ๊ฐ์ํค๊ณ , completion ๋ฐฐ์ด์ ์ํํ๋ฉฐ map์์ ๊ฐ ์ฐธ๊ฐ์ ์ด๋ฆ ๊ฐ key์ ๋ํ value๋ฅผ 1์ฉ ๊ฐ์์ํค๋ฉด, ๊ฒฐ๊ตญ ๋ง์ง๋ง์ value๊ฐ 1์ธ key ๊ฐ์ด ๋ต์ด ๋๋ค.
function solution(participant, completion) {
let map = new Map();
participant.forEach((name) => {
if(map.has(name)){
map.set(name, map.get(name)+1);
}
else
map.set(name,1);
})
completion.forEach((name) => {
map.set(name, map.get(name)-1);
})
for(let [key, value] of map){
if(value==1){
return key;
}
}
}
for(let i = 0; i < participant.length; i++) {
let a = participant[i],
b = completion[i];
participant ๋ฐฐ์ด์ ๊ธธ์ด๊ฐ completion ๋ฐฐ์ด์ ๊ธธ์ด๋ณด๋ค 1 ํฌ๋ฏ๋ก, ๋ค์๊ณผ ๊ฐ์ด ํจ๊ป ๋ฃจํ๋ฅผ ๋ ์ ์๋ค.
map.set(a, (map.get(a) || 0) + 1);
map.set(b, (map.get(b) || 0) - 1);
๋ค์๊ณผ ๊ฐ์ด, key์ ํด๋นํ๋ ๊ฐ์ด ์์ ๋์ ์ฒ๋ฆฌ๋ฅผ ๋ ๊ฐ๊ฒฐํ๊ฒ ํด์ค ์ ์๋ค.