42840. ๋ชจ์๊ณ ์ฌ
์ฝ๋ฉํ ์คํธ ์ฐ์ต - ๋ชจ์๊ณ ์ฌ
๋ฌธ์ ์ ํ | ๋์ด๋ | ๊ฑธ๋ฆฐ ์๊ฐ | ํด๊ฒฐ ์ ๋ฌด(โ /โ) |
---|---|---|---|
์์ ํ์ | lv.1 | 20๋ถ | โ |
#
์ค๊ณ ๋ฐฉ๋ฒ์ํฌ์๋ค์ ๋ฒํธ ๊ท์น์ ๊ธฐ๋กํ๋ค.
%
ย ์ฐ์ฐ์์ ๋ฒํธ ๊ท์น ๋ฐฐ์ด์ ๊ธธ์ด๋ฅผ ์ฌ์ฉํ์ฌยanswers
ย ์ index์ ์ํฌ์๋ค์๋ฒํธ ๊ท์น๊ณผ index๋ฅผ ๋ง์ถฐ ์ ์๋ฅผ ๊ณ์ฐํ๋ค.์ต๋ ์ ์๋ฅผ ๊ธฐ๋กํ๋ค.
์ต๋ ์ ์์ ๊ฐ์ ์ฌ๋์ ๋ฒํธ๋ฅผ ์ ๋ต ๋ฐฐ์ด์ ์์๋๋ก ๋ฃ๋๋ค.
#
์ฝ๋- ์ฒซ ๋ฒ์งธ ํ์ด
function solution(answer) { const person1 = [1, 2, 3, 4, 5]; const person2 = [2, 1, 2, 3, 2, 4, 2, 5]; const person3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5];
const score = [0, 0, 0];
answer.forEach((n, i) => { if (person1[i % person1.length] === n) { score[0]++; } if (person2[i % person2.length] === n) { score[1]++; } if (person3[i % person3.length] === n) { score[2]++; } });
return score.reduce((best, cur, idx) => { const bestPerson = best.pop(); if (!bestPerson || cur > score[bestPerson - 1]) { return [idx + 1]; } best.push(bestPerson); if (cur === score[bestPerson - 1]) { best.push(idx + 1); } return best; }, []);}
- ๋ฆฌํฉํ ๋ง
function solution(answers) { const answer = [];
const p1 = [1, 2, 3, 4, 5]; const p2 = [2, 1, 2, 3, 2, 4, 2, 5]; const p3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5];
const s1 = answers.filter((a, i) => a === p1[i % p1.length]).length; const s2 = answers.filter((a, i) => a === p2[i % p2.length]).length; const s3 = answers.filter((a, i) => a === p3[i % p3.length]).length; const max = Math.max(s1, s2, s3);
if (s1 === max) { answer.push(1); } if (s2 === max) { answer.push(2); } if (s3 === max) { answer.push(3); }
return answer;}
#
์๊ฐ ๋ณต์ก๋- ์ ๋ต ๋ฐฐ์ด ์ํ : O(n)
#
์ด๋ ค์ ๋ ์ ์ต๋๊ฐ์ ๊ฐ์ง ์ฌ๋์ ๋ฒํธ๋ฅผ ์ ๋ต ๋ฐฐ์ด์ ๋ฃ๋ ๋ถ๋ถ์ด ์ด๋ ค์ ๋ค.
ํด๊ฒฐ ํ ๋ค๋ฅธ ์ฌ๋์ ํ์ด ์ค ๊น๋ํ ์ฝ๋๊ฐ ์์ด์, ์ฐธ๊ณ ํ์ฌ ๋ฆฌํฉํ ๋งํ๋ค.