[프로그래머스 레벨 1 JavaScript] '모의고사' 풀이

7076 단어 JavaScriptJavaScript

function solution(answers) {
  let answer = [];
  let p1 = [1, 2, 3, 4, 5];
  let p2 = [2, 1, 2, 3, 2, 4, 2, 5];
  let p3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5];
  
  let p1Cnt = answers.filter((a, idx) => a === p1[idx % p1.length]).length;
  let p2Cnt = answers.filter((a, idx) => a === p2[idx % p2.length]).length;
  let p3Cnt = answers.filter((a, idx) => a === p3[idx % p3.length]).length;

  let max = Math.max(p1Cnt, p2Cnt, p3Cnt); //제일 많이 맞춘사람 찾기

  if (p1Cnt === max) answer.push(1); 
  if (p2Cnt === max) answer.push(2);
  if (p3Cnt === max) answer.push(3);

  return answer;
}

filter()와 나머지 연산를 통해 answers의 길이가 수포자1,2,3 패턴의 길이보다 길어도 인덱스가 맞춰지게 하였다.
맞춘 갯수의 최댓값을 저장하고, 최댓값과 일치하는 사람 번호를 answer에 push

좋은 웹페이지 즐겨찾기