반응형
https://school.programmers.co.kr/learn/courses/30/lessons/77484
먼저 로또에 있는0의 숫자를 zeroCount로 주어 갯수를 파악한 뒤,
맞춘 숫자의 갯수를 파악했다.
전부 맞췄을 경우와 로또의 숫자가 전부 0인 경우에 대해서 예외처리를 해 주고, 나머지인 경우를 계산하여 array에 최고, 최저 순위를 push 해 주었다.
function solution(lottos, win_nums) {
let matches =0;
let zeroCount = 0;
lottos.forEach(value=>{if(value===0)zeroCount++;});
for(let i=0; i<lottos.length; i++){
if(win_nums.findIndex(value=>value===lottos[i])>-1){
matches++;
}
}
var answer = [];
if(matches === 0 && zeroCount===0){
answer.push(6);
} else{
answer.push(7-(matches+zeroCount));
}
if(matches === 0){ matches=1; }
answer.push(7-matches);
return answer;
}
function solution(lottos, win_nums) {
const rank = [6, 6, 5, 4, 3, 2, 1];
let minCount = lottos.filter(v => win_nums.includes(v)).length;
let zeroCount = lottos.filter(v => !v).length;
const maxCount = minCount + zeroCount;
return [rank[maxCount], rank[minCount]];
}
rank를 배열로 만들어서 구현한 답이 있어서 가져와봤다.
includes() 함수는 다음 링크로 확인할 수 있다.
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/includes
minCount는 최소한으로 맞춘 개수를 의미하기 때문에 includes함수로 찾은 동일한 숫자의 개수가 등수로 표현이 될 것이다.
maxCount는 최대한 맞춘 개수를 의미하여, zeroCount를 더한 숫자의 개수가 등수로 표현될 것이다.
rank로 모두 0인 경우 6등임을 설정한 것은 매우 좋은 생각인것 같다.
반응형
'javascript > 프로그래머스' 카테고리의 다른 글
[코딩테스트 연습] level 1. 카드 뭉치 (0) | 2023.04.03 |
---|---|
[코딩테스트 연습] level 1. 바탕화면 정리 (0) | 2023.03.24 |
[코딩테스트 연습]level 1. 체육복 (0) | 2022.07.07 |
[코딩테스트 연습]level 1. 완주하지 못한 선수 - 코드분석 (0) | 2022.07.06 |
[코딩테스트 연습]level 1. 완주하지 못한 선수 (0) | 2022.07.04 |
댓글