문제풀이/프로그래머스

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

빈둥벤둥 2021. 7. 4. 14:55

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

 

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

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

programmers.co.kr

풀이

🪑 구현, 시뮬레이션 유형의 문제이다.

 

🔧 로또 번호가 맞는지 확인해 주기 위해 반복문을 2중으로 사용하여 확인해 주었다. 확인하면서 '0'으로 표시된 부분의 개수도 함께 count해 주었다.

 

🔧 최고 순위는 최대로 로또 번호를 맞췄을때 이므로 현재 맞는 로또 번호의 개수 + '0'의 개수로 계산해 주었다.

 

🔧 순위를 지정하는 부분은 배열을 사용하였다. 인덱스를 로또 번호의 개수로 지정하고, 해당 개수만큼 번호를 맞췄을때의 등수 값은 value로 가지고 있도록 하였다.

 

코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import java.util.*;
 
class Solution {
    
    final int[] rank = {6654321};
    
    public int[] solution(int[] lottos, int[] win_nums) {
        int lowerCount = 0;
        int zeroCount = 0;
        for(int i = 0; i < lottos.length; i++) {
            for(int j = 0; j < win_nums.length; j++) {
                if(win_nums[j] == lottos[i]) lowerCount++;
            }
            if(lottos[i] == 0) zeroCount++;
        }      
        int heightCount = zeroCount + lowerCount;
        
        return new int[] {rank[heightCount], rank[lowerCount]};        
    }
}
cs