호지

[프로그래머스] 모의고사 문제풀이 JS 본문

알고리즘/프로그래머스

[프로그래머스] 모의고사 문제풀이 JS

_hoji

1-3번의 수포자의 패턴은

1,2,3,4,5

2,1,2,3,2,4,2,5

3,3,1,1,2,2,4,4,5,5

이다.

따라서 해당 패턴을 solvePattern이라는 배열에 저장한다.

이후 주어진 answers를 전체 탐색하면서

각 패턴별로 맞은 개수를 구하여

해당값이 최대일 경우 맞은 개수의 최댓값인 maxCount를 업데이트하고,

해당 번호를 result에 push한다.

3가지의 패턴을 모두 위 과정을 거치게 되면

result에는 맞은 개수가 최대인 수포자의 번호가 저장되게 된다.

function solution(answers) {
  let result = [],
    maxCount = -1
  const solvePattern = [
    [1, 2, 3, 4, 5],
    [2, 1, 2, 3, 2, 4, 2, 5],
    [3, 3, 1, 1, 2, 2, 4, 4, 5, 5],
  ]
  for (let n = 0; n < 3; n++) {
    let correctCount = 0
    let len = solvePattern[n].length
    for (let i = 0; i < answers.length; i++) {
      if (answers[i] === solvePattern[n][i % len]) {
        correctCount++
      }
    }
    if (correctCount === maxCount) {
      result.push(n + 1)
    } else if (correctCount > maxCount) {
      result = [n + 1]
      maxCount = correctCount
    }
  }
  return result
}

https://school.programmers.co.kr/learn/courses/30/lessons/42840

Comments