내 코드
function solution(answers) {
var answer = []
var student = [
[1, 2, 3, 4, 5],
[2, 1, 2, 3, 2, 4, 2, 5],
[3, 3, 1, 1, 2, 2, 4, 4, 5, 5],
]
let idx = 0
let cnt = 0
let result = []
for (let k = 0; k < student.length; k++) {
for (let i = 0; i < student[k].length; i++) {
if (idx === answers.length) {
idx = 0
}
if (answers[idx] === student[k][i]) {
cnt++
}
idx++
}
result.push(cnt)
cnt = 0
idx = 0
}
let max = -100
for (let i = 0; i < result.length; i++) {
if (max <= result[i]) {
max = result[i]
answer.push(i + 1)
}
}
answer.sort()
return answer
}
solution([1, 3, 2, 4, 2])
// solution([1, 2, 3, 4, 5])
answers도 반복 순환해야 하는줄알았는데, 딱 answers길이만큼만 구하면 되는거였음
12345/12345/12345/... 하면 분면 2번수포자는 1개 맞추는데..
이점이 헷갈렸던 것같다.
function solution(answers) {
const one = [1, 2, 3, 4, 5]
const two = [2, 1, 2, 3, 2, 4, 2, 5]
const three = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5]
const result = [0, 0, 0]
const length = answers.length
for (let i = 0; i < length; i++) {
if (one[i % 5] === answers[i]) result[0]++
if (two[i % 8] === answers[i]) result[1]++
if (three[i % 10] === answers[i]) result[2]++
}
const answer = []
const maxValue = Math.max(...result)
let index = 0
for (let i = 0; i < 3; i++) {
if (maxValue === result[i]) {
answer[index] = i + 1
index++
}
}
return answer
}
solution([1, 2, 3, 4, 5])
%
로 배열을 순환해서 표현할 수 있다