728x90
👌 반복되는 모양이 있어서 변수부터 지정해주면
let a1 = [1, 2, 3, 4, 5];
let a2 = [2, 1, 2, 3, 2, 4, 2, 5]
let a3 = [ 3, 3, 1, 1, 2, 2, 4, 4, 5, 5];
👌 filter 함수를 통해 answers 와 일치하는 개수를 꺼내주기, 이건 변수를 a1c, a2c, a3c 처럼 지정
let a1c = answers.filter((a,i)=> a === a1[i%a1.length]).length;
let a2c = answers.filter((a,i)=> a === a2[i%a2.length]).length;
let a3c = answers.filter((a,i)=> a === a3[i%a3.length]).length;
👌 이 세 변수 중 가장 최대 개수가 누구인지
let max = Math.max(a1c, a2c, a3c)
👌 a1c는 1번 수포자, a2c는 2번 수포자, a3c는 3번 수포자 이므로 각각 1,2,3으로 answer에 넣어주면 된다.
if (a1c === max) {answer.push(1)};
if (a2c === max) {answer.push(2)};
if (a3c === max) {answer.push(3)};
✅ 최종 코드
function solution(answers) { var answer = []; let a1 = [1, 2, 3, 4, 5]; let a2 = [2, 1, 2, 3, 2, 4, 2, 5] let a3 = [ 3, 3, 1, 1, 2, 2, 4, 4, 5, 5]; let a1c = answers.filter((a,i)=> a === a1[i%a1.length]).length; let a2c = answers.filter((a,i)=> a === a2[i%a2.length]).length; let a3c = answers.filter((a,i)=> a === a3[i%a3.length]).length; let 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; } |
728x90
'알고리즘 스터디 > [프로그래머스] 월간 코드 챌린지 시즌1' 카테고리의 다른 글
[알고리즘] 문자열 내림차순으로 배치하기 문제풀이(자바스크립트 javascript) (0) | 2022.07.21 |
---|---|
[알고리즘] 문자열 내 마음대로 정리하기 문제풀이(자바스크립트 javascript) (0) | 2022.07.21 |
[알고리즘] 로또의 최고 순위와 최저 순위 문제풀이(자바스크립트 javascript) (0) | 2022.07.20 |
[알고리즘] 두 개 뽑아서 더하기 문제풀이(자바스크립트 javascript) (0) | 2022.07.20 |
[알고리즘] 같은 숫자는 싫어 문제풀기(자바스크립트 javascript) (0) | 2022.07.20 |