반응형
Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

undefined

[프로그래머스] 로또의 최고 순위와 최저 순위 -JS 본문

Coding Test

[프로그래머스] 로또의 최고 순위와 최저 순위 -JS

JavaScripter 2022. 7. 1. 13:53
반응형

문제 설명

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모두비당첨)


배운 점

 

반응형
Comments