๋ฌธ์
์ํฌ์๋ ์ํ์ ํฌ๊ธฐํ ์ฌ๋์ ์ค๋ง์ ๋๋ค. ์ํฌ์ ์ผ์ธ๋ฐฉ์ ๋ชจ์๊ณ ์ฌ์ ์ํ ๋ฌธ์ ๋ฅผ ์ ๋ถ ์ฐ์ผ๋ ค ํฉ๋๋ค. ์ํฌ์๋ 1๋ฒ ๋ฌธ์ ๋ถํฐ ๋ง์ง๋ง ๋ฌธ์ ๊น์ง ๋ค์๊ณผ ๊ฐ์ด ์ฐ์ต๋๋ค. 1๋ฒ ์ํฌ์๊ฐ ์ฐ๋ ๋ฐฉ์: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... 2๋ฒ ์ํฌ์๊ฐ ์ฐ๋ ๋ฐฉ์: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ... 3๋ฒ ์ํฌ์๊ฐ ์ฐ๋ ๋ฐฉ์: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ... 1๋ฒ ๋ฌธ์ ๋ถํฐ ๋ง์ง๋ง ๋ฌธ์ ๊น์ง์ ์ ๋ต์ด ์์๋๋ก ๋ค์ ๋ฐฐ์ด answers๊ฐ ์ฃผ์ด์ก์ ๋, ๊ฐ์ฅ ๋ง์ ๋ฌธ์ ๋ฅผ ๋งํ ์ฌ๋์ด ๋๊ตฌ์ธ์ง ๋ฐฐ์ด์ ๋ด์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์กฐ๊ฑด
์ํ์ ์ต๋ 10,000 ๋ฌธ์ ๋ก ๊ตฌ์ฑ๋์ด์์ต๋๋ค.
๋ฌธ์ ์ ์ ๋ต์ 1, 2, 3, 4, 5์ค ํ๋์
๋๋ค.
๊ฐ์ฅ ๋์ ์ ์๋ฅผ ๋ฐ์ ์ฌ๋์ด ์ฌ๋ฟ์ผ ๊ฒฝ์ฐ, returnํ๋ ๊ฐ์ ์ค๋ฆ์ฐจ์ ์ ๋ ฌํด์ฃผ์ธ์.
์ฝ๋
const solution = (answers) => {
let answer = [];
const list = [
[1, 2, 3, 4, 5],
[2, 1, 2, 3, 2, 4, 2, 5],
[3, 3, 1, 1, 2, 2, 4, 4, 5, 5]
];
let point = [0, 0, 0];
let max = 0;
for (let i = 0; i < answers.length; i++) {
if (answers[i] === list[0][i % 5]) {
point[0]++;
}
if (answers[i] === list[1][i % 8]) {
point[1]++;
}
if (answers[i] === list[2][i % 10]) {
point[2]++;
}
}
for (let j = 0; j < point.length; j++) {
if (point[j] > max) {
max = point[j];
}
}
for (let k = 0; k < point.length; k++) {
if (max === point[k]) {
answer.push(k + 1);
}
}
if (answer.length !== 1) {
answer.sort((a, b) => a - b);
}
return answer;
}
์ฐ๋ ๋ฐฉ์์ ๋ฆฌ์คํธ๋ก ๋ฐฐ์ด ์์ ๋ด๋๋ค. for๋ฌธ์ผ๋ก answers์ i์ list[0][0] - list[0][5]๊น์ง ์ฐพ๋๋ค.
๋ค๋ฅธ ํ์ด
function solution(answers) {
var answer = [];
var a1 = [1, 2, 3, 4, 5];
var a2 = [2, 1, 2, 3, 2, 4, 2, 5]
var a3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5];
var a1c = answers.filter((a,i)=> a === a1[i%a1.length]).length;
var a2c = answers.filter((a,i)=> a === a2[i%a2.length]).length;
var a3c = answers.filter((a,i)=> a === a3[i%a3.length]).length;
var max = Math.max(a1c,a2c,a3c);
if (a1c === max) {answer.push(1)};
if (a2c === max) {answer.push(2)};
if (a3c === max) {answer.push(3)};
return answer;
}
์ฐ๋ ๋ฐฉ์ 1,2,3์ ๋ฐฐ์ด๋ก ๋ง๋ค์ด๋๋๋ค. answers ๋ฐฐ์ด๊ณผ a1, a2, a3 ๋ฐฐ์ด์ filter๋ฉ์๋๋ก ๋ค๋ฅธ ๊ฒ์ ๊ฑท์ด๋ด๋ฉฐ ๊ฐ์ ๊ฒ ๋ง ์๋ ๋ฐฐ์ด์ ๊ตฌํ๊ณ length๋ฅผ ๊ตฌํ๋ค. ์ธ ๊ฐ ์ค์์ ํฐ ๊ฐ์ ์ฐพ๋๋ค. max์ธ ๊ฐ์ answer ๋ฐฐ์ด์ push ํ๋ค.
'๐กAlgorithm > ๋ฌธ์ ํ๊ธฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
JS์๊ณ ๋ฆฌ์ฆ | ํ๋ก๊ทธ๋๋จธ์ค(Level 1) - ๋น๋ฐ์ง๋ (0) | 2021.09.12 |
---|---|
JS์๊ณ ๋ฆฌ์ฆ | ํ๋ก๊ทธ๋๋จธ์ค(Level 1) - ์คํจ์จ (0) | 2021.09.10 |
JS์๊ณ ๋ฆฌ์ฆ | ๋ฌธ์์ด ์์ถ (2) | 2021.05.13 |
JS์๊ณ ๋ฆฌ์ฆ | ๊ฐ์ฅ ์งง์ ๋ฌธ์๊ฑฐ๋ฆฌ (0) | 2021.05.09 |
JS์๊ณ ๋ฆฌ์ฆ | ๋ฌธ์์ด์์ ์ซ์๋ง ์ถ์ถ (0) | 2021.05.06 |