undefined
[프로그래머스] 로또의 최고 순위와 최저 순위 -JS 본문
반응형
문제 설명
0은 어떤 수가 될 수 있다.
문제 풀이
function solution(lottos, win_nums) {
let win = []
let answer = []
for(let i =0; i<lottos.length;i++){
for(let j =0;j<lottos.length;j++){
if(lottos[i]===win_nums[j]) {
win.push(lottos[i])
}
}
}
const ranking = {6:1,5:2,4:3,3:4,2:5,1:6}
const zeroNum = lottos.filter(e=>e===0)
const maxWins = win.length+zeroNum.length
if(win.length === 6) {
answer = [1,1]
} else if (win.length === 0) {
if(zeroNum.length === 6) {
answer = [1,6]
} else if (zeroNum.length === 1 || zeroNum.length === 0) {
answer = [6,6]
}
} else {
answer = [ranking[maxWins],ranking[win.length]]
}
return answer
}
1. for루프를 활용해 lottos 배열과 win_nums 배열을 비교하여 확정적으로 당첨된 수를 win배열에 넣는다.
2. 랭킹을 object로 키값과 밸류값으로 각각 정해준다.
3. lottos배열에서 0의 갯수를 찾아준다.
4. 0은 어떤 수든 될 수 있기 때문에 가장 많이 이긴 경우는 확정적으로 이긴 win배열의 길이와 zeroNum의 길이의 합
5. 만약 win배열의 길이가 6일 경우에 [1,1]
6. win배열의 길이가 0일 경우에는 (경우의수: 모두 0인경우 => [1,6], 0이 하나인경우 =>[6,6], 0이 없는경우 => [6,6])
7. 그리고 win의 길이가 6도 0도 아닌경우에는 [ranking[maxWins],ranking[win.length]] 배정해준다. ( 0모두당첨 // 0모두비당첨)
배운 점
반응형
'Coding Test' 카테고리의 다른 글
[프로그래머스] 기능개발 - JS (0) | 2022.07.03 |
---|---|
[프로그래머스] 신고 결과 받기 -JS (0) | 2022.07.02 |
[프로그래머스] 신규 아이디 추천 -JS (0) | 2022.07.01 |
[프로그래머스] 크레인 인형뽑기 -JS (0) | 2022.06.30 |
[프로그래머스] 소수 만들기 -자바스크립트(JS) (0) | 2022.06.28 |
Comments