โ๏ธ ๋ฌธ์ ๋งํฌ
https://school.programmers.co.kr/learn/courses/30/lessons/42576
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
โ๏ธ ๋ฌธ์ ์์ฝ
n๋ช ์ ์ ์๊ฐ ๋ง๋ผํค์ ๋ฐ๊ณ n-1๋ช ์ ์ ์๊ฐ ์์ฃผ๋ฅผ ํ๋ค. ์์ฃผ๋ฅผ ํ์ง ๋ชปํ ์ ์์ ์ด๋ฆ์ ๋ฐํํ์ฌ๋ผ.
์ ๋ ฅ : ์ ์๋ค์ ์ด๋ฆ์ด ๋ฌธ์์ด๋ก ๋ค์ด๊ฐ ๋ฐฐ์ด participant, ์์ฃผํ ์ ์์ ์ด๋ฆ์ด ๋ค์ด๊ฐ ๋ฐฐ์ด์ธ completion
๐ด ์ ํ์ฌํญ
- 1๋ช ์ด์ 100,000๋ช ์ดํ
- ์ฐธ๊ฐ์ ์ค์๋ ๋๋ช ์ด์ธ์ด ์์ ์ ์๋ค.
๐ฉ ์ ๊ทผ๋ฒ
1. ์๊ฐ ์ ํ์ด ์์๊ธฐ ๋๋ฌธ์ 10๋ง๋ช ์ participant๋ฅผ ์ฒ์๋ถํฐ ๋๊น์ง ์ฐพ์๋ด๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํด๋ ๊ด์ฐฎ๋ค.
2. ๋๋ช ์ด์ธ์ด ์๊ธฐ๋๋ฌธ์ filter๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ฉด participant์ ๋ชจ๋ ๋๋ช ์ด์ธ์ด ์ฌ๋ผ์ง๋ค. ๋ฐ๋ผ์ hashmap์ ์ฌ์ฉํ์
๐ก์ฝ๋
function solution(participant, completion) { let hashMap = new Map(); participant.forEach((person) => { if(hashMap.has(person)) hashMap.set(person, hashMap.get(person)+1); else hashMap.set(person, 1); }); completion.forEach((person) => { hashMap.set(person, hashMap.get(person)-1); }); for([k, v] of hashMap){ if(v > 0) return k; } return answer; }
๋ค๋ฅธ ์ฌ๋๋ค์ ์ฝ๋๋ฅผ ๋ณด๋ ์ฝ๋๋ฅผ ์ข ๋ ์ ๋ฆฌํ ์ ์์ ๊ฒ ๊ฐ์์ ์ ๋ฆฌํด๋ณด๋ฉด ์๋์ ๊ฐ๋ค.
function solution(participant, completion) { let hashMap = new Map(); for(let i=0; i<participant.length; i++){ let a = participant[i], b = completion[i]; hashMap.set(a, (hashMap.get(a) || 0) + 1); hashMap.set(b, (hashMap.get(b) || 0) - 1); } for([k, v] of hashMap){ if(v > 0) return k; } return answer; }