문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/77484
문제 설명
로또는 1부터 45까지 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 로또의 순위를 정하는 방식은 다음과 같습니다.
순위 | 당첨 내용 |
1 | 6개 번호가 모두 일치 |
2 | 5개 번호가 일치 |
3 | 4개 번호가 일치 |
4 | 3개 번호가 일치 |
5 | 2개 번호가 일치 |
6(닥첨) | 그 외 |
민우는 로또를 확인하고 싶었지만, 일부 번호가 낙서되어 알아볼 수 없게 되었습니다. 민우는 자신이 구매했던 로또로 당첨이 가능했던 최고 순위와 최저 순위를 알아보고 싶어 졌습니다. 알아볼 수 없는 번호를 0으로 표기한다고 가정할 때, 민우가 구매한 로또 번호를 담은 배열 lottos, 당첨 번호를 담은 배열 win_num가 매개변수로 주어집니다. 이 때, 당첨 가능한 최고 순위와 최저 순위를 차례대로 배열에 담아서 리턴하도록 함수를 완성하세요.
제한 사항
- lottos는 길이 6인 정수 배열입니다.
- lottos의 모든 원소는 0 이상 45 이하인 정수입니다.
- 0은 알아볼 수 없는 숫자를 의미합니다.
- 0을 제외한 다른 숫자들은 lottos에 2개 이상 담겨있지 않습니다.
- lottos의 원소들은 정렬되어 있지 않을 수도 있습니다.
- win_nums은 길이 6인 정수 배열입니다.
- win_nums의 모든 원소는 1 이상 45 이하인 정수입니다.
- win_nums에는 같은 숫자가 2개 이상 담겨있지 않습니다.
- win_nums의 원소들은 정렬되어 있지 않을 수도 있습니다.
✅ Code - 성공
function solution(lottos, win_nums) {
const lotto_rank = { 6 : 1, 5 : 2, 4 : 3, 3 : 4, 2 : 5, 1 : 6, 0 : 6}
let max_cnt = 0, min_cnt = 0;
for (let num of win_nums) {
if (lottos.includes(num)) {
max_cnt++;
min_cnt++;
}
}
max_cnt += lottos.filter(e => !e).length; // 알아볼 수 없는 번호(0)를 최고 순위에 더하기
return [lotto_rank[max_cnt], lotto_rank[min_cnt]];
}
'알고리즘 문제 > 프로그래머스_Lv1 도장깨기' 카테고리의 다른 글
[프로그래머스] 부족한 금액 계산하기 (Javascript) (1) | 2024.12.30 |
---|---|
[프로그래머스] 숫자 문자열과 영단어 (Javascript) (0) | 2024.12.26 |
[프로그래머스] 신규 아이디 추천 (Javascript) (0) | 2024.12.23 |
[프로그래머스] 옹알이 (2) (Javascript) (1) | 2024.12.20 |
[프로그래머스] 약수의 개수와 덧셈 (Javascript) (0) | 2024.12.19 |