λ°˜κ°€μ›Œμš”! ν—ˆλΈŒμž…λ‹ˆλ‹€!

μ €λŠ” 개발자λ₯Ό ν˜„λŒ€ μ—°κΈˆμˆ μ‚¬λΌκ³  ν‘œν˜„ν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€. κ°œλ°œμ„ κ³΅λΆ€ν•˜λ©° λŠλ‚€ 점듀과 이야기λ₯Ό κΈ°λ‘ν•˜λŠ” κ³΅κ°„μž…λ‹ˆλ‹€.

μ•Œκ³ λ¦¬μ¦˜ 풀이/ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€

둜또의 졜고 μˆœμœ„μ™€ μ΅œμ € μˆœμœ„

mmin.h 2021. 6. 23. 23:17

https://programmers.co.kr/learn/courses/30/lessons/77484

 

μ½”λ”©ν…ŒμŠ€νŠΈ μ—°μŠ΅ - 둜또의 졜고 μˆœμœ„μ™€ μ΅œμ € μˆœμœ„

둜또 6/45(μ΄ν•˜ '둜또'둜 ν‘œκΈ°)λŠ” 1λΆ€ν„° 45κΉŒμ§€μ˜ 숫자 쀑 6개λ₯Ό μ°μ–΄μ„œ λ§žνžˆλŠ” λŒ€ν‘œμ μΈ λ³΅κΆŒμž…λ‹ˆλ‹€. μ•„λž˜λŠ” 둜또의 μˆœμœ„λ₯Ό μ •ν•˜λŠ” λ°©μ‹μž…λ‹ˆλ‹€. 1 μˆœμœ„ 당첨 λ‚΄μš© 1 6개 λ²ˆν˜Έκ°€ λͺ¨λ‘ 일치 2 5개 번호

programmers.co.kr

 

풀이 

lottos λ°°μ—΄ λ‚΄ μˆ«μžμ™€ win_nums λ°°μ—΄ λ‚΄ 같은 숫자 + lottos λ°°μ—΄λ‚΄ 0의 숫자 -> 졜고 μˆœμœ„

lottos λ°°μ—΄ λ‚΄ μˆ«μžμ™€ win_nums λ°°μ—΄ λ‚΄ 같은 숫자 -> μ΅œμ € μˆœμœ„

 

class Solution {
    public int[] solution(int[] lottos, int[] win_nums) {
        int[] answer = {0,0};
        int corNum = 0;
        int zero = 0;
        for(int i = 0; i < 6; i++){
            if(lottos[i] == 0)
                zero++;
            for(int j = 0; j < 6; j++){
                if(lottos[i] == win_nums[j]){
                    corNum++;
                }
            }
        }
        if(corNum + zero == 6){
            answer[0] = 1;
        }
        else if(corNum + zero == 5)
            answer[0] = 2;
        else if(corNum + zero == 4)
            answer[0] = 3;
        else if(corNum + zero == 3)
            answer[0] = 4;
        else if(corNum + zero == 2)
            answer[0] = 5;
        else 
            answer[0] = 6;
            
        if(corNum == 6)
            answer[1] = 1;
        else if(corNum == 5)
            answer[1] = 2;
        else if(corNum == 4)
            answer[1] = 3;
        else if(corNum == 3)
            answer[1] = 4;
        else if(corNum == 2)
            answer[1] = 5;
        else 
            answer[1] = 6;
            
        return answer;
    }
}

λ‹€μ†Œ κ³Όκ²©ν•˜κ³  λ”μ°ν•œ μ½”λ“œκ°€ νƒ„μƒν•˜μ˜€λ‹€. 이에 λŒ€ν•œ 원인은 합을 λ“±μˆ˜λ‘œ μΉ˜ν™˜ν•˜λŠ” κ³Όμ •μ—μ„œ λ²Œμ–΄μ§„ 일이닀. λ‹€λ₯Έ λΆ„λ“€μ˜ μ½”λ“œλ₯Ό 보고 μ’€ 배우자면 μ•„λž˜ 정도 μ½”λ“œκ°€ λ‚΄κ°€ μƒκ°ν•œ 문제λ₯Ό 잘 ν•΄κ²°ν•œ λ¬Έμ œκ°€ μ•„λ‹κΉŒ 라고 νŒλ‹¨λœλ‹€. 

class Solution {
    public int[] solution(int[] lottos, int[] win_nums) {
        int[] answer = new int[2];

        int cnt1 = 0;
        int cnt2 = 0;
        for(int i : lottos) {
            if(i == 0) {
                cnt1++;
                continue;
            }
            for(int j : win_nums) {
                if(i == j) cnt2++;
            }
        }


        answer[0] = getGrade(cnt1+cnt2);
        answer[1] = getGrade(cnt2);

        return answer;
    }

    public int getGrade(int n) {
        switch(n) {
            case 6 :
                return 1;
            case 5 :
                return 2;
            case 4 :
                return 3;
            case 3 :
                return 4;
            case 2 :
                return 5;
            default :
                return 6;
        }
    }
}
 int[] answer = {Math.min(7 - max, 6), Math.min(7 - min, 6)};

μ•„λ‹ˆλ©΄ ν•΄λ‹Ή μ‹μœΌλ‘œλ„ 문제λ₯Ό ν’€ 수 μžˆλ‹€. λ“±μˆ˜μ— λŒ€ν•΄μ„  μ΄λ ‡κ²Œ ν’€ 수 도 μžˆκ΅¬λ‚˜..!