프로그래머스[Level 1] 모의고사 (완전탐색)

bkboy·2022년 6월 14일
0

문제

제한 사항

입출력 예

풀이

function solution(answers) {
  let ans = {};

  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];

  const ansSheet = [p1, p2, p3];

  for (let i = 1; i <= 3; i++) {
    let curSheet = ansSheet.shift();
    let score = answers.filter(
      (e, i) => e === curSheet[i % curSheet.length]
    ).length;
    ans[i] = score;
  }

  const max = Math.max(...Object.values(ans));
  const answer = [];
  for (let [key, values] of Object.entries(ans)) {
    if (values === max) {
      answer.push(+key);
    }
  }

  return answer.sort((a, b) => a - b);
}
  • 수포자의 패턴을 넣은 배열을 ansSheet(답안지)배열에 넣었다.
  • 1부터 3까지 반복문을 돌면서 score를 구해줬다. 이때 answers의 길이보다 curSheet의 길이가 긴 경우를 어떻게 해결해야할지 고민하다가 길이로 나눈 나머지를 사용하면 깨달았다.
  • 객체에 정리한 후 최대값을 구해서 최대값과 같은 value를 가진 key를 return 했다.
profile
음악하는 개발자

0개의 댓글