프로그래머스 - level1(모의고사)

임쿠쿠·2020년 11월 10일
0

알고리즘

목록 보기
4/6
post-thumbnail

문제

문제풀이

  1. 답의 배열 길이와 수포자1,2,3이 정답을 찍는 경우의 수는 다르기 때문에 이를 고려해야 한다.
  2. 가장 답을 많이 맞춘 사람을 구해야 한다.
  3. 답의 갯수가 동일할 경우 번호 순으로 출력해야 한다.
function solution(answers) {
  var answer = [];
  const man1 = [1, 2, 3, 4, 5];
  const man2 = [2, 1, 2, 3, 2, 4, 2, 5];
  const man3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5];

  let count = [0, 0, 0];

  for (let i = 0; i < answers.length; i++) {
    //나머지 연산자를 통해서 답이 길어지더라도 반복되는 답의 위치를 매칭할 수 있다.
    if (answers[i] === man1[i % man1.length]) count[0]++;
    if (answers[i] === man2[i % man2.length]) count[1]++;
    if (answers[i] === man3[i % man3.length]) count[2]++;
  }
  //가장 많이 맞춘 count를 구한다.
  const max = Math.max(count[0], count[1], count[2]);

  //답의 수가 동률일 경우 순차적으로 answer 배열에 index값을 넣는다.
  for (let i = 0; i < count.length; i++) {
    if (max === count[i]) answer.push(i + 1);
  }

  return answer;
}
solution([1, 3, 2, 4, 2]);
profile
Pay it forward

0개의 댓글