프로그래머스 | 모의고사_JS

김명성·2021년 10월 21일
0

Algorithm

목록 보기
40/61
post-thumbnail

난이도 : Level. 1
언어 : Javascript
출제 내역 : 완전탐색

❓ Question

3명의 수포자가 문제를 찍는 방식에 따라서
어떤 학생이 가장 많은 문제를 맞췄는지 확인해봅시다.

📝 My Solution

전체 풀이 코드 👈🏻 클릭시 Github로 이동

function solution(answers) {
  var answer = [];
  const stu1 = [1, 2, 3, 4, 5];
  const stu2 = [2, 1, 2, 3, 2, 4, 2, 5];
  const stu3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5];

먼저 3명의 수포자가 수학시험에서 답을 고르는 방식을
각각 배열로 정해줍니다.

let ans1 = answers.filter((a, i) => a === stu1[i % 5]).length;
let ans2 = answers.filter((a, i) => a === stu2[i % 8]).length;
let ans3 = answers.filter((a, i) => a === stu3[i % 10]).length;

filter() 함수를 이용해서 각 학생 별 정답을 맞춘 갯수를 내줍니다.

  let max = Math.max(ans1, ans2, ans3);

  if (max === ans1) answer.push(1);
  if (max === ans2) answer.push(2);
  if (max === ans3) answer.push(3);

  return answer;
}

그 중 가장 높은 수를 max로 하고,
어떤 학생이 가장 높은 점수를 얻었는지 확인해서 정답 배열에 넣어줍니다.

결과

filter 함수에 대해서도 좀 더 공부할 필요가 있을 것 같습니다

profile
잠재력은 핵폭탄급 Frontend Developer

0개의 댓글

관련 채용 정보