[프로그래머스] 모의고사

방예서·2022년 6월 9일
0

코딩테스트 준비

목록 보기
16/37
post-custom-banner

프로그래머스로도 코딩테스트를 준비하고자 풀어보았다.

모의고사

function solution(answers) {
  var answer = [];
  let result = [0, 0, 0];
  
  const p1 = [1, 2, 3, 4, 5];
  const p2 = [2, 1, 2, 3, 2, 4, 2, 5];
  const p3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5];

  for (let i=0; i<answers.length; i++) {
    if (answers[i] === p1[i%5]) {
      result[0]++;
    }
    if (answers[i] === p2[i%8]) {
      result[1]++;
    }
    if (answers[i] === p3[i%10]) {
      result[2]++;
    }
  }

  for (let i=0; i<3; i++) {
    if (result[i] === Math.max(...result)) {
      answer.push(i+1);
    }
  }

  return answer;
}

단순 구현 문제인데 꽤나 오래 걸렸다...😒

  1. 수포자들의 반복적인 배열을 직접 구현하려다가 바보 같은 짓이라는 것을 깨달았다.

  2. 매개변수로 받은 answers와 비교해서 맞으면 해당 count 올려주기. 이 부분에서 나머지 연산자를 사용해서 반복을 구현해준다. 1번에서 바보 같은 짓을 할 필요가 없는 이유.

  3. max 값만 찾으면 되는 것이 아니고 그 인덱스를 결과로 내야하고, 중복이 있으면 오름차순으로 모두 결과로 내야한다.
    이 과정에서도 또 복잡...했는데 수포자가 3명 밖에 없으니 하나하나 다 비교했다.

profile
console.log('bang log');
post-custom-banner

0개의 댓글