문제
풀이
level 1인 만큼 쉽게 풀 수 있는 문제
당첨 번호와 내가 구매해서 알고 있는 번호를 비교해서 얻은 값(=A)이 최저 순위가 되고
그리고 내가 구매했지만 모르고 있는 번호는 당첨 번호로 바꾸어 주면 최고 순위를 알 수 있다
0은 조커 카드, 깍두기 느낌이기 때문에 그 자체로 당첨 번호로 취급하자
최저 순위 : A 개수
최고 순위 : A 개수 + 0의 개수
코드
function solution(lottos, win_nums) {
var answer = [];
let unknown = 0;
let cnt = 0;
while(lottos.length){
const current = lottos.shift();
matching(current);
}
answer.push(getRank(unknown+cnt));
answer.push(getRank(cnt));
return answer;
function getRank(number){
if(number===6) return 1;
if(number===5) return 2;
if(number===4) return 3;
if(number===3) return 4;
if(number===2) return 5;
return 6;
}
function matching(number){
if(number===0) {
unknown++;
return;
}
if(win_nums.includes(number)){
cnt++;
}
}
}
리팩토링...?
getRank 함수는 굳이 if문을 쓸 필요가 없었다
function getRank(number){
const rank = [6,6,5,4,3,2,1];
return rank[number];
}
'Algorithm > 문제' 카테고리의 다른 글
programmers. 약수의 개수와 덧셈 (0) | 2021.06.14 |
---|---|
programmers. 음양 더하기 (0) | 2021.06.13 |
baekjoon. 생태학 (0) | 2021.06.08 |
baekjoon. 절댓값 힙 (0) | 2021.06.05 |
baekjoon. 최대 힙 (0) | 2021.06.04 |