[2021 Dev-Matching: 웹 백엔드 개발자(상반기)] 로또의 최고 순위와 최저 순위
💻로또의 최고 순위와 최저 순위
로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다.
순위 당첨 내용 1 6개 번호 모두 일치 2 5개 번호 모두 일치 3 4개 번호 모두 일치 4 3개 번호 모두 일치 5 2개 번호 모두 일치 6 그 외
로또를 구매한 민우는 당첨 번호 발표일을 학수고대하고 있었습니다. 하지만, 민우의 동생이 로또에 낙서를 하여, 일부 번호를 알아볼 수 없게 되었습니다. 당첨 번호 발표 후, 민우는 자신이 구매했던 로또로 당첨이 가능했던 최고 순위와 최저 순위를 알아보고 싶어 졌습니다.
알아볼 수 없는 번호는 0으로 표시한 민우가 구매한 로또 번호를 담은 배열 lottos, 당첨 번호를 담은 배열 win_nums가 매개변수로 주어집니다. 이때, 당첨 가능한 최고 순위와 최저 순위를 차례대로 배열에 담아서 return 하도록 solution 함수를 완성해주세요.
입출력 예
lottos win_nums answer [44, 1, 0, 0, 31, 25] [31, 10, 45, 1, 6, 19] [3, 5] [0, 0, 0, 0, 0, 0] [38, 19, 20, 40, 15, 25] [1, 6] [45, 4, 35, 20, 3, 9] [20, 9, 3, 45, 4, 35] [1, 1]
☕첫번째 풀이
function solution(lottos, win_nums) {
var answer = [];
const unknowns = lottos.filter(zero => zero === 0).length
const corrects = lottos.filter(correct => win_nums.includes(correct)).length
let min = 7 - corrects >= 6 ? 6 : 7 - corrects
let max = min - unknowns < 1 ? 1 : min - unknowns
answer.push(max, min)
return answer;
}
- filter 메소드를 사용하여 0 과 당첨된 번호의 개수를 구하기
const unknowns = lottos.filter(zero => zero === 0).length
const corrects = lottos.filter(correct => win_nums.includes(correct)).length
- 삼항연산자를 사용하여 당첨 등수 최소, 최댓값 구하기
let min = 7 - corrects >= 6 ? 6 : 7 - corrects
let max = min - unknowns < 1 ? 1 : min - unknowns
☕다른 분의 풀이
function solution(lottos, win_nums) {
const answer = []
const rank = [6,6,5,4,3,2,1]
let min = lottos.filter(correct => win_nums.includes(correct)).length
let zero = lottos.filter(zero => !zero).length
let max = min + zero
answer.push(rank[max], rank[min])
return answer;
}
로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다.
순위 | 당첨 내용 |
---|---|
1 | 6개 번호 모두 일치 |
2 | 5개 번호 모두 일치 |
3 | 4개 번호 모두 일치 |
4 | 3개 번호 모두 일치 |
5 | 2개 번호 모두 일치 |
6 | 그 외 |
로또를 구매한 민우는 당첨 번호 발표일을 학수고대하고 있었습니다. 하지만, 민우의 동생이 로또에 낙서를 하여, 일부 번호를 알아볼 수 없게 되었습니다. 당첨 번호 발표 후, 민우는 자신이 구매했던 로또로 당첨이 가능했던 최고 순위와 최저 순위를 알아보고 싶어 졌습니다.
알아볼 수 없는 번호는 0으로 표시한 민우가 구매한 로또 번호를 담은 배열 lottos, 당첨 번호를 담은 배열 win_nums가 매개변수로 주어집니다. 이때, 당첨 가능한 최고 순위와 최저 순위를 차례대로 배열에 담아서 return 하도록 solution 함수를 완성해주세요.
입출력 예
lottos | win_nums | answer |
---|---|---|
[44, 1, 0, 0, 31, 25] | [31, 10, 45, 1, 6, 19] | [3, 5] |
[0, 0, 0, 0, 0, 0] | [38, 19, 20, 40, 15, 25] | [1, 6] |
[45, 4, 35, 20, 3, 9] | [20, 9, 3, 45, 4, 35] | [1, 1] |
function solution(lottos, win_nums) {
var answer = [];
const unknowns = lottos.filter(zero => zero === 0).length
const corrects = lottos.filter(correct => win_nums.includes(correct)).length
let min = 7 - corrects >= 6 ? 6 : 7 - corrects
let max = min - unknowns < 1 ? 1 : min - unknowns
answer.push(max, min)
return answer;
}
const unknowns = lottos.filter(zero => zero === 0).length
const corrects = lottos.filter(correct => win_nums.includes(correct)).length
let min = 7 - corrects >= 6 ? 6 : 7 - corrects
let max = min - unknowns < 1 ? 1 : min - unknowns
function solution(lottos, win_nums) {
const answer = []
const rank = [6,6,5,4,3,2,1]
let min = lottos.filter(correct => win_nums.includes(correct)).length
let zero = lottos.filter(zero => !zero).length
let max = min + zero
answer.push(rank[max], rank[min])
return answer;
}
조건문을 사용하지 않고, 미리 선언해둔 rank
배열을 활용하여 순위를 구함
Author And Source
이 문제에 관하여([2021 Dev-Matching: 웹 백엔드 개발자(상반기)] 로또의 최고 순위와 최저 순위), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kich555/2021-Dev-Matching-웹-백엔드-개발자상반기로또의-최고-순위와-최저-순위저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)