๋ฌธ์ ๋งํฌ
์ฝ๋ฉํ ์คํธ ์ฐ์ต - ์ ๊ณ ๊ฒฐ๊ณผ ๋ฐ๊ธฐ
๋ฌธ์ ์ค๋ช ์ ์ ์ฌ์ ๋ฌด์ง๋ ๊ฒ์ํ ๋ถ๋ ์ด์ฉ์๋ฅผ ์ ๊ณ ํ๊ณ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ๋ฉ์ผ๋ก ๋ฐ์กํ๋ ์์คํ ์ ๊ฐ๋ฐํ๋ ค ํฉ๋๋ค. ๋ฌด์ง๊ฐ ๊ฐ๋ฐํ๋ ค๋ ์์คํ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ๊ฐ ์ ์ ๋ ํ ๋ฒ์ ํ ๋ช ์
programmers.co.kr
์ ๊ทผ๋ฐฉ๋ฒ
1. ๋จผ์ user list๋ฅผ ๋ด๊ณ ์๋ id_list๋ฅผ ์ฌ์ฉํ์ฌ user์ ๊ธธ์ด์ ๊ฐ์ ๋น ๋ฐฐ์ด์ ์์ฑํ๊ณ ๊ฐ์ 0์ผ๋ก ์ด๊ธฐํํฉ๋๋ค.
2. ์ ๊ณ ํ ์ฌ๋์ ์ด๋ฆ๊ณผ ์ ๊ณ ๋ฐ์ ์ฌ๋์ ์ด๋ฆ์ key์ value๋ก ๊ฐ๋ reportObj ๊ฐ์ฒด๋ฅผ ์์ฑํฉ๋๋ค.
3. report๋ก ๋ฐ์ ์ ๊ณ ๋ด์ญ์ ๊ฐ ๋ฐฐ์ด์ ๊ฐ์ด " "์ ํตํด ๊ตฌ๋ถ๋์ด ์์ผ๋ฏ๋ก ๋น๊ตฌ์กฐํ ํ ๋น์ ํตํด ๊ฐ๋จํ๊ฒ userId(์ ์ ์ด๋ฆ), reportId(์ ๊ณ ๋ฐ์ ์ ์ ์ด๋ฆ)์ผ๋ก ๋๋๊ณ
๋ง์ฝ reportObj์ ํค(์ ๊ณ ๋ฐ์ ์ฌ๋)์ value๊ฐ userId๋ฅผ ํฌํจํ์ง ์๋๋ค๋ฉด reportObj[์ ๊ณ ๋ฐ์์ฌ๋]์ ์ ๊ณ ํ ์ฌ๋(userId)๋ฅผ push ํฉ๋๋ค.
4. ์ด๋ ๊ฒ ๋ง๋ค์ด์ง reportObj (key : ์ ๊ณ ๋ฐ์์ฌ๋, value : ์ ๊ณ ํ์ฌ๋)์ ํตํด value์ ๊ธธ์ด๊ฐ k(์ ์ง์ ๊ธฐ์ค์ด ๋๋ ์)์ด์์ผ๋ reportObj[์ ๊ณ ๋ฐ์์ฌ๋]์ value๋ฅผ map์ผ๋ก ์ํํ๋ฉฐ
id_list.indexOf(user) ์ฝ๋๋ฅผ ์ฌ์ฉํด ์์์ ๋ง๋ ์์น์ +1์ ํ์ฌ ์ ๋ต๊ณผ ๊ฐ์ ๊ตฌ์กฐ๋ฅผ ๋ง๋ญ๋๋ค.
function solution(id_list, report, k) {
const answer = new Array(id_list.length)
answer.fill(0);
const reportObj = {}
id_list.map((user) => reportObj[user] = []);
report.map((report) => {
const [userId, reportId] = report.split(' ');
if(!reportObj[reportId].includes(userId)){
reportObj[reportId].push(userId)
}
})
for(const key in reportObj){
if(reportObj[key].length >= k){
reportObj[key].map((user)=>{
answer[id_list.indexOf(user)] += 1
})
}
}
return answer;
}
'์ฝ๋ฉํ ์คํธ > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Javascript] ํคํจ๋ ๋๋ฅด๊ธฐ(67265) (0) | 2022.04.21 |
---|---|
[Javascript] ์ ๊ท ์์ด๋ ์ถ์ฒ (72410) (0) | 2022.04.20 |
[Javascript] ๋ก๋์ ์ต๊ณ ์์์ ์ต์ ์์ (77484) (0) | 2022.04.20 |
[Javascript] ์ซ์ ๋ฌธ์์ด๊ณผ ์๋จ์ด (81301) (0) | 2022.04.18 |
์์ ๋ง๋ค๊ธฐ (0) | 2022.01.10 |