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

lhs's avatar
Nov 27, 2024
[프로그래머스] 로또의 최고 순위와 최저 순위(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