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

Yujin·2025년 6월 18일

CodingTest

목록 보기
5/51

문제

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

문제 접근 방법

1. lottos의 배열을 반복문으로 돌리면서 
	값이 0이면 cnt1++ -> 0인 값들이 다 맞았을때 최대를 구하기 위해서
	반복문 안에서 win_nums배열을 읽는 반복문을 하나 더 돌려서 win_nums와 lottos의 배열의 값을
	비교, 같으면 cnt2 ++ -> 원래 맞았던 값
2. cnt 변수 선언(cnt1 + cnt2)로 최대로 많이 맞출 때 
3. cnt(최대)cnt2(원래 맞았던 것만)의 score을 각각 if문으로 찾는다

나의 코드

import java.util.*;

class Solution {
    public int[] solution(int[] lottos, int[] win_nums) {

        int cnt1 = 0;
        int cnt2 = 0;
        
        for(int i : lottos){
            if(i == 0)
                cnt1++;
            for(int w : win_nums){
                if(w == i)
                    cnt2++;
            }
        }
        int cnt = cnt1 + cnt2;
        int score1 = 0; 
        int score2 = 0;
        
        if(cnt == 6) score1 = 1;
        else if(cnt == 5 )score1 = 2;
        else if(cnt == 4) score1 = 3;
        else if(cnt == 3) score1 = 4;
        else if(cnt == 2) score1 = 5;
        else score1 = 6;
        
        if(cnt2 == 6) score2 = 1;
        else if(cnt2 == 5 )score2 = 2;
        else if(cnt2 == 4) score2 = 3;
        else if(cnt2 == 3) score2 = 4;
        else if(cnt2 == 2) score2 = 5;
        else score2 = 6;
        
        int[] answer = {score1, score2};
        return answer;
    }
}

0개의 댓글