본문 바로가기
코드문제풀이/JAVA

[자바] 로또의 최고 순위와 최저 순위

by 똥쟁이핑크 2023. 8. 21.

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

나의 문제 풀이

1) 0이 되는 수와 맞추는 수를 각각 세어본다.

2) 1순위는 6개번호가 일치 해야 하기 때문에 1+6을 하여 7이라는 숫자를 기준으로 삼았다.

3) answer[ 0 ] 은 최고 순위, answer[ 1 ] 는 최저 순위를 기입하기 위해 다음과 같은 식을 썼다.

4) answer[ 1 ] 은 하나도 못 맞출경우 7이 나오기 때문에 7이 나오면 -1을 해줬다.

5) 그리고 1개만 맞췄을 경우도 있기 때문에 answer[ 0 ]과 answer[ 1 ]은 6으로 설정해줬다.

 

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

        for (int i = 0; i < lottos.length; i++) {
            if (lottos[i] == 0) {
                zero++;
            }
            for (int j = 0; j < win_nums.length; j++) {
                if (lottos[i] == win_nums[j]) {
                    count++;
                }
            }
            answer[0] = 7-(zero + count);
            answer[1] = 7-(count);
            if(answer[1] == 7){
                answer[1] -= 1;
            }
            if(zero + count < 2){
                answer[0] = 6;
                answer[1] = 6;
            }
        }
        return answer;
        // answer[0] = 7-(Math.max(count+zero, 1));
//        answer[1] = 7-(Math.max(count, 1));
        
    }
}

'코드문제풀이 > JAVA' 카테고리의 다른 글

[자바] 체육복  (0) 2023.08.21
[자바] 옹알이 (2)  (0) 2023.08.21
[자바] 기사단원의 무기  (0) 2023.08.21
[자바] 덧칠하기  (0) 2023.08.21
[자바] 모의고사  (0) 2023.08.21