function solution(answers) {
const lengthAns = answers.length;
const first = [1, 2, 3, 4, 5];
const second = [2, 1, 2, 3, 2, 4, 2, 5];
const third = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5];
const firstAns = new Array(Math.ceil(lengthAns / first.length))
.fill(first)
.flat();
const secondAns = new Array(Math.ceil(lengthAns / second.length))
.fill(second)
.flat();
const thirdAns = new Array(Math.ceil(lengthAns / third.length))
.fill(third)
.flat();
let countFirst = 0;
let countSecond = 0;
let countThird = 0;
for (let i = 0; i < lengthAns; i++) {
if (answers[i] === firstAns[i]) {
countFirst++;
}
if (answers[i] === secondAns[i]) {
countSecond++;
}
if (answers[i] === thirdAns[i]) {
countThird++;
}
}
let answer = [];
let temp = [countFirst, countSecond, countThird];
let countMax = Math.max(...temp);
for (let i = 0; i < 3; i++) {
if (temp[i] === countMax) {
answer.push(i + 1);
}
}
return answer;
}
๋ญ๊ฐ ๊น๋ํ ํ์ด๋ ์๋๋ค...ใ ๊ณต์๋ฌธ์๋ฅผ ๋ณด๋ฉด์ ์๋ฐ์คํฌ๋ฆฝํธ์ ์ฌ๋ฌ ํจ์๋ค์ ์ด์ฉํด๋ณด๋ ค ํ๋ค๋ณด๋ ๋ค์ ๋ณต์กํด์ง๋ ๊ฒ ๊ฐ๋ค.
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;
}
filter๋ฅผ ๋ฐฐ์ด์ value๋ง ์ด์ฉํ์๋๋ฐ, ์ด๋ ๊ฒ index๊น์ง ํ์ฉํ ์ ์๋์ง ์ฒ์ ์์๋ค ใ
ใ
ใ
๊ณต์๋ฌธ์๋ฅผ ๋ณด๋ฉด Array.prototype.filter((value, index, arr) => {}) ์ ํํ๋ก ์ธ ์ ์๋๋ฐ,
value๋ ๋ฐฐ์ด์ ๊ฐ, index๋ ๋ฐฐ์ด์ ์ธ๋ฑ์ค, arr๋ ๊ทธ ๋ฐฐ์ด ์์ฒด๋ฅผ ๋ฐ๋๋ค.
'๐ JavaScript > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS]์ฐ์ต๋ฌธ์ -ํ๋ ฌ์ ๋ง์ (0) | 2022.06.21 |
---|---|
[JS]์ฐ์ต๋ฌธ์ -x๋งํผ ๊ฐ๊ฒฉ n๊ฐ์ ์ซ์ (0) | 2022.06.21 |
[JS] ํด์ - ์์ฃผํ์ง ๋ชปํ ์ ์ (0) | 2022.06.06 |
[JS]์ํด๋ฆฌ ์ฑ๋ฆฐ์ง - ๋ถ์กฑํ ๊ธ์ก ๊ณ์ฐํ๊ธฐ (0) | 2022.06.02 |
[JS] ์ํด๋ฆฌ ์ฑ๋ฆฐ์ง - ์ต์์ง์ฌ๊ฐํ (0) | 2022.06.01 |