ํ์ด ๐๐ปโ๏ธ
function solution(answer) {
const result = [];
const personOne = [1, 2, 3, 4, 5];
const personTwo = [2, 1, 2, 3, 2, 4, 2, 5];
const personThree = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5];
const answerOne = answer.filter((v, i) => v === personOne[i % 5]).length;
const answerTwo = answer.filter((v, i) => v === personTwo[i % 8]).length;
const answerThree = answer.filter((v, i) => v === personThree[i % 10]).length;
const highScore = Math.max(answerOne, answerTwo, answerThree);
if (highScore === answerOne) result.push(1);
if (highScore === answerTwo) result.push(2);
if (highScore === answerThree) result.push(3);
return result;
}
/*
(ํ์ด)
๊ฐ๊ฐ์ ํจํด์ ๋ง๋ ๋ฐฐ์ด์ ์์ฑํ๊ณ filter๋ฉ์๋๋ฅผ ํตํด answer์ ์ผ์นํ๋ ๊ฐ์๋ฅผ ๋ฝ์์ ๊ทธ ๊ฐ์ด
์ต๋๊ฐ๊ณผ ๊ฐ์ผ๋ฉด result ๋ฐฐ์ด์ push ํด์ค๋ค.
๋๋จธ์ง๊ฐ์ ๋ฃ์ด์ค์ผ ํ๋ค๋๊ฑธ ๋ชฐ๋ผ์ ๊ณ์ ์ ์ถ์ ์คํจํ๋๋ฐ ๊ฒฐ๊ตญ ๊ตฌ๊ธ๋งํด์ ์ฐพ์ ์ผ์ง๋ง ์ด์ ๋ ์์๋ค.
i๊ฐ 5 ์ผ๋ personOne์ ๋ค์ 0๋ฒ์งธ ์ธ๋ฑ์ค ๊ฐ 1์ ๋ณด์ฌ์ฃผ๊ณ answer๊ฐ personOne๋ฐฐ์ด ๋ณด๋ค ๊ธธ๋ ๋ค์ ์ํ๋ฅผ ๋ ์ ์๋ค.
ํ๋ ์ผ์ด์ค๋ answer์ ๊ธธ์ด๊ฐ ๋ ๊ธธ๋ ์ธ๊ฑฐ๊ฐ๋ค.
*/
- ์ด๊ฑฐ์ง๋ก ํ์ด๋๋ค.. filter ์ด์ฉ ์ ๋๋จธ์ง๋ฅผ ์ด์ฉํด ์ฃผ์ด์ง answer๋ฐฐ์ด์ ๊ธธ์ด๊ฐ ๋ ๊ธธ ๊ฒฝ์ฐ๋ฅผ ๊ณ ๋ คํด์ผ ํ๋๊ฑธ ์ฐพ๋๋ผ ํ๋ค์๋ค.
ํผ๋๋ฐฑ
function solution(answer) {
const result = [];
// ๋ชจ๋ ํจํด์ ๊ฐ๊ฐ์ ๋ณ์๋ก ๊ด๋ฆฌํ๊ธฐ๋ณด๋ค ๋ฐฐ์ด๋ก ๊ด๋ฆฌ
const patterns = [
[1, 2, 3, 4, 5],
[2, 1, 2, 3, 2, 4, 2, 5],
[3, 3, 1, 1, 2, 2, 4, 4, 5, 5],
];
// ๊ฐ๊ฐ์ ๊ฒฝ์ฐ๋ฅผ ํ๋์ฝ๋ฉํ๋๊ฒ ์๋ ๋ฐ๋ณต๋ฌธ์ผ๋ก ๊ฐ์ 1
const counters = patterns.map((pattern, i) => {
return answer.filter((v, j) => v === pattern[j % pattern.length]).length;
})
const highScore = Math.max(...counters);
// ๊ฐ๊ฐ์ ๊ฒฝ์ฐ๋ฅผ ํ๋์ฝ๋ฉํ๋๊ฒ ์๋ ๋ฐ๋ณต๋ฌธ์ผ๋ก ๊ฐ์ 2
counters.forEach((counter) => {
if (counter === highScore) result.push(i + 1);
}, []);
return result;
}
- ํ์ฌ ํ์ด๋ ๋ ๋ค์ํ ํจํด๊ณผ ํ์ ์๊ฐ ๋์ด๋ฌ์ ๊ฒฝ์ฐ๋ฅผ ๊ณ ๋ คํ์ง ์์ ํ๋์ฝ๋ฉ์ด๋ค. ์ด์ ๋ฐ์ ํผ๋๋ฐฑ ํ์ด
- ํ์์ 2์ฐจ์ ๋ฐฐ์ด์ ๋ฃ์ด 1๊ฐ์ ๋ฐฐ์ด๋ก ๊ด๋ฆฌ
- ๊ฒฝ์ฐ๋ฅผ ํ๋์ฝ๋ฉ ํ์ง ์๊ณ ๋ฐ๋ณต๋ฌธ์ผ๋ก ๊ฐ์
- ์๊ฐ๋ณต์ก๋๊ฐ O(n^2) ๊ฐ ๋๋๊ฒ ์ซ์ด์ ํต์ฌ์ ๋์น๊ฑฐ ๊ฐ๋ค.. ์ฐ์ฐํ์๋ ๋์ผํ๋ฐ ํ๋์ฝ๋ฉ์ผ๋ก ์์ฑํ๋ค๋๐ฅฒ ์ฃผ์ํ์
'์๊ณ ๋ฆฌ์ฆ & ๋ฌธ์ ํ์ด > Programmers-1' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์์ฃผํ์ง ๋ชปํ ์ ์ (0) | 2022.10.09 |
---|---|
์์ ๋ง๋ค๊ธฐ (0) | 2022.10.09 |
ํฐ์ผ๋ชฌ (0) | 2022.10.09 |
์ต์ ์ง์ฌ๊ฐํ (0) | 2022.10.06 |
์ด์ํ ๋ฌธ์ ๋ง๋ค๊ธฐ (0) | 2022.10.01 |