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

문제 링크

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


문제


해결 과정

  • 우선 0의 개수를 센다. 동시에 lottos 배열과 win_nums배열에 같은 값이 있는지 확인한다.
  • lottos와 win_nums에 중복되는 숫자는 없기때문에 같은 값이 있는지 확인만 하면 됨

최종 코드

import java.util.*;

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

다른 코드

  • answer을 계산할 때 switch를 사용한 경우 존재
public class Solution {
    public int[] solution(int[] lottos, int[] win_nums) {
        
        int zero_count = 0;
        int check = 0;
        
        for (int l : lottos) {
            if (l == 0) zero_count++;
            else {
                for (int w : win_nums) {
                    if (l == w) {
                        check++;
                        break;
                    }
                }
            }
        }
        
        int min = check;
        int max = check + zero_count;
        
        int[] answer = {getGrade(max), getGrade(min)};
        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;
        }
    }
}

좋은 웹페이지 즐겨찾기