본문 바로가기

프로그래머스 문제/Level 1

[프로그래머스] 모의고사 - 자바스크립트

문제 설명

 

 

 

문제 풀이

function solution(answers) {
  let answer = [];
  let one = [1, 2, 3, 4, 5];
  let two = [2, 1, 2, 3, 2, 4, 2, 5];
  let three = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5];
  let score = [0, 0, 0];
  // 정답지와 수포자들의 답 확인
  for(let i = 0; i < answers.length; i++) {
    if(answers[i] === one[i % one.length]) {
      score[0] ++;
    }
    if(answers[i] === two[i % two.length]) {
      score[1] ++;
    }
    if(answers[i] === three[i % three.length]) {
      score[2] ++;
    }
  }
  // 최대값 찾기
  let answerMax = Math.max.apply(null, score);
  // 최대값과 일치한 스코어가 있다면 배열에 추가
  if(answerMax === score[0]) {
    answer.push(1);
  };
  if(answerMax === score[1]) {
    answer.push(2);
  };
  if(answerMax === score[2]) {
    answer.push(3);
  }
  //배열 정렬
  answer.sort();
  return answer;
};

1. for 문을 돌려 정답지와 각 사람들의 정답을 비교하여 score에 자리에 맞게 점수를 증가 시킨다.

2. 최대 값을 찾는다

3. 최대 값과 일치하는 번호가 있으면 answer배열에 추가한다.

4. 마지막으로 최대 값을 가지고 있는 번호가 2개 이상일 수 있으니 정렬한다.

 

 

실행 결과

 

 

 

코드 채점하고 제출