매일매일 풀어야 하는데,, 바빠서 못풀었다...
05.24에 푼 문제입니다🌷
모의고사
function solution(answers) {
var answer = [];
var student1=[1,2,3,4,5]
var student2=[2, 1, 2, 3, 2, 4, 2, 5]
var student3=[3, 3, 1, 1, 2, 2, 4, 4, 5, 5]
var correct=new Map()
correct.set(1,0)
correct.set(2,0)
correct.set(3,0)
for(let i in answers){
if(answers[i]===student1[i%5]) correct.set(1,correct.get(1)+1)
if(answers[i]===student2[i%(student2.length)]) correct.set(2,correct.get(2)+1)
if(answers[i]===student3[i%(student3.length)]) correct.set(3,correct.get(3)+1)
}
correct=[...correct.entries()].sort((a,b)=>b[1]-a[1])
var max=0
for(let cor of correct){
if(cor[1]>=max){
answer.push(cor[0])
max=cor[1]
}
}
return answer;
}
처음 풀었을 때!
function solution(answers) {
var answer = [];
var s1=[1, 2, 3, 4, 5]
var s2=[2, 1, 2, 3, 2, 4, 2, 5]
var s3=[3, 3, 1, 1, 2, 2, 4, 4, 5, 5]
var correct1=answers.filter((ans,i)=>ans===s1[i%s1.length]).length
var correct2=answers.filter((ans,i)=>ans===s2[i%s2.length]).length
var correct3=answers.filter((ans,i)=>ans===s3[i%s3.length]).length
var max = Math.max(correct1,correct2,correct3)
if(max===correct1) answer.push(1)
if(max===correct2) answer.push(2)
if(max===correct3) answer.push(3)
return answer;
}
훨씬 간결한 코드!
filter를 사용하면 간결해진다.