Level1 - 모의고사

Lee Ju-Hyeon(David)·2021년 10월 28일
0
post-thumbnail

문제 출처

Solution

function solution(answers) {
  var answer = []
  let result = []
  const patterns = [
    [1, 2, 3, 4, 5],
    [2, 1, 2, 3, 2, 4, 2, 5],
    [3, 3, 1, 1, 2, 2, 4, 4, 5, 5]
  ]
  patterns.forEach(pattern => {
    let idx = 0
    let count = 0
    answers.forEach(num => {
      if (num === pattern[idx]) {
        count++
      }
      idx++
      if (idx === pattern.length) {
        idx = 0
      }

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

  return result;
}

}

Clean-up

function solution(answers) {
    var answer = [];
    const a1 = [1, 2, 3, 4, 5];
    const a2 = [2, 1, 2, 3, 2, 4, 2, 5]
    const a3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5];

    const a1c = answers.filter((a,i)=> a === a1[i%a1.length]).length;
    const a2c = answers.filter((a,i)=> a === a2[i%a2.length]).length;
    const a3c = answers.filter((a,i)=> a === a3[i%a3.length]).length;
    const max = Math.max(a1c,a2c,a3c);

    if (a1c === max) {answer.push(1)};
    if (a2c === max) {answer.push(2)};
    if (a3c === max) {answer.push(3)};

    return answer;
}
  • filter메서드를 이용해 조건에 맞는 요소만 모아 answers 배열을 생성.
    filter메서드의 인수로 배열의 요소와 인덱스를 추가했다. 인덱스는 옵션.
  • 해당 배열의 개수가 정답 수에 해당.
  • i%a2.length인덱스를 패턴의 길이로 나누면 인덱스 범위 초과 없이 반복할 수 있다.

0개의 댓글