프로그래머스
[프로그래머스] 로또의 최고 순위와 최저 순위
so_yeon_-
2024. 12. 28. 14:35
https://school.programmers.co.kr/learn/courses/30/lessons/77484
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
접근방법
사용자가 선택한 로또 번호(lottos)와 당첨 번호(win_nums)를 비교하여, 일치하는 번호의 개수(low)와 미지정 번호(0)의 개수(temp)를 계산한다. low + temp는 미지정 번호를 모두 당첨 번호로 바꾼 경우의 최대 맞춘 개수로, 이를 통해 최고 순위를 계산하고, low는 실제로 맞춘 개수로 최저 순위를 계산한다.
function solution(lottos, win_nums) {
var score = new Map([[6,1],[5,2],[4,3],[3,4],[2,5],[0,6]]);
var answer = [];
// 일치하는 숫자 개수를 계산
var low = 0;
// 0의 개수를 계산
var temp = 0;
for(lotto of lottos){
if(win_nums.filter((item) => item == lotto)[0] != null){
low ++;
}else if(lotto == 0){
temp ++;
}
}
// score map 에 포함되지 않는경우 6등 (ex. 1개 맞춘경우)
answer.push(score.get(low + temp) || 6);
answer.push(score.get(low) || 6);
return answer;
}
결과 : 100점