inblog logo
|
LHS's Study Space
    알고리즘문제풀기프로그래머스

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

    lhs's avatar
    lhs
    Nov 27, 2024
    [프로그래머스] 로또의 최고 순위와 최저 순위(77484)
    Contents
    1. 문제 풀이 아이디어2. 나의 정답 코드3. 정리
    school.programmers.co.kr
    https://school.programmers.co.kr/learn/courses/30/lessons/77484
     

    1. 문제 풀이 아이디어

    • Set 자료형에 당첨 번호를 저장한 후, 0을 제외한 로또 번호 중 일치하는 숫자와 일치하지 않는 숫자를 구해 문제를 해결할 수 있다.

    2. 나의 정답 코드

    class Solution { public int[] solution(int[] lottos, int[] win_nums) { Set<Integer> set = new HashSet<>(); for (int i : win_nums) { set.add(i); } int same = 0; int diff = 0; for (int i : lottos) { if (i == 0) continue; if (set.contains(i)) same++; else diff++; } return new int[]{Math.min(1 + diff, 6), Math.min(6, 7 - same)}; } }

    3. 정리

    • for 문을 사용해 당첨 번호를 set에 저장한다.
    • 이후, for 문을 돌며 로또 번호가 0이면 건너뛰고, set에 있으면 same을 증가시키고 없으면 diff를 증가시킨다.
    • 최대 등수는 1 + diff, 최소 등수는 7 - same으로 계산되며, 결과가 6을 초과할 경우를 고려해 min 메서드를 사용해 최대 6으로 제한하여 정답을 구할 수 있다.
    Share article

    LHS's Study Space

    RSS·Powered by Inblog