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, ...
함수의 인자로 답안을 배열 형식으로 받는다.
이때 누가 가장 많이 맞추는지 배열 안에 담아서 반환하라.
function solution(answers) {
const makeAnswers = (arr) =>{
let count = 0;
for(let i = 0; i < answers.length; i++){
if(arr[i%arr.length] === answers[i]){
count++
}
}
return count;
}
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 score = [0,0,0];
score[0] = makeAnswers(first)
score[1] = makeAnswers(second)
score[2] = makeAnswers(third)
const result = [];
for(let i = 0; i < 3; i++){
if(score[i] === Math.max(...score)){
result.push(i+1);
}
}
return result;
}
함수내에 수포자의 정답패턴이 담긴 행렬을 인자로 넣으면 정답과 비교해 몇개가 맞았는지 반환하는 함수를 만들고 점수가 담긴 한 배열에 담아줬다.
그리고 가장 큰 수를 찾아서 해당 인덱스에 1을 더한 수를 정답 배열에 푸시하고 해당 정답배열을 반환한다.
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges#