[Programmers] : 2021 Dev-Matching > 로또의 최고 순위와 최저 순위

🔗 문제 링크

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

 

코딩테스트 연습 - 로또의 최고 순위와 최저 순위

로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호

programmers.co.kr

 

💻 코드

package org.kyhslam.programmers.DevMatching2021;

import java.util.Arrays;

public class p01_01 {
    public static void main(String[] args) {
        int[] answer = new int[2];
        //int[] lottos = {44, 1, 0, 0, 31, 25};
        int[] lottos = {0, 0, 0, 0, 0, 0};
        int[] win_nums = {31, 10, 45, 1, 6, 19};

        int zeroCnt = 0;
        int matchCnt = 0;

        for (int i : lottos) {
            for (int j : win_nums) {
                if(i == j) matchCnt++;
            }

            if(i== 0) zeroCnt++;
        }

        System.out.println("zeroCnt = " + zeroCnt);
        System.out.println("matchCnt = " + matchCnt);

        //최고
        int upResult = chose(zeroCnt + matchCnt);
        System.out.println("upResult = " + upResult);

        //최저
        int downResult = chose(matchCnt);
        System.out.println("downResult = " + downResult);


        answer[0] = upResult;
        answer[1] = downResult;

        System.out.println(Arrays.toString(answer));

    }

    public static int chose(int target) {
        int ranking = 0;
        switch (target) {
            case 2: ranking = 5;
                break;
            case 3: ranking = 4;
                break;
            case 4: ranking = 3;
                break;
            case 5: ranking = 2;
                break;
            case 6: ranking = 1;
                break;
            default: ranking = 6;
                break;
        }
        return ranking;
    }
}

 

💻 다른풀이

 

class Solution {
    public int[] solution(int[] lottos, int[] win_nums) {
        int zero = 0;
        int matched = 0;
        for (int l : lottos) {
            if (l == 0) {
                zero++;
            } else {
                for (int w : win_nums) {
                    if (l == w) {
                        matched++;
                        break;
                    }
                }
            }
        }
        int min = matched;
        int max = matched + zero;
        int[] answer = {Math.min(7 - max, 6), Math.min(7 - min, 6)};
        return answer;
    }
}

댓글

Designed by JB FACTORY