5주차 화요일 알고리즘

문혜민·2022년 4월 12일

5주차 수업내용

목록 보기
2/8

function solution(answer) {

let a= [1, 2, 3, 4, 5]
let b=[2, 1, 2, 3, 2, 4, 2, 5]
let c=[3, 3, 1, 1, 2, 2, 4, 4, 5, 5]

let A=[]
let B=[]
let C=[]

for (let i = 0; i < answer.length; i++) {
if (a[i % 5] === answer[i])
A.push(answer[i])
if (b[i % 8] === answer[i])
B.push(answer[i])
if (c[i % 10] === answer[i])
C.push(answer[i])
}

let result= [A.length,B.length, C.length]
let max= Math.max(...result)
let final=[]
result.reduce((_,cur,i)=>{
if (cur===max )final.push(i+1)
},0)
return final.sort()

}

멘토님답

메서드

const answerTable=
[[1, 2, 3, 4, 5],
[2, 1, 2, 3, 2, 4, 2, 5],
[3, 3, 1, 1, 2, 2, 4, 4, 5, 5]]

function solution(answer) {
const scoreList=answerTable.map((el,i)=>{
// 스코어는 찍은번호가 정답과 일치하는지 확인하고 학생들의 점수를 합산
const score=answer.reduce((acc,cur,l)=>{
return acc+ (el[l%el.length]===cur? 1 : 0)
},0)
return { student : i+1, score}
})
const biggest =Math.max(...scoreList.map(el=>{
return el.score
}))
return scoreList.filter((el)=>{ return el.score===biggest
}).map(el=>el.student )
}

profile
프론드엔드 개발하면서 메모장처럼 쓰는즁

0개의 댓글