[프로그래머스/JAVA] 로또의 최고 순위와 최저 순위
2025. 3. 3. 00:41ㆍ코딩테스트/프로그래머스
문제
https://school.programmers.co.kr/learn/courses/30/lessons/77484
문제 정리
값을 알아볼 수 없게 된 로또 용지에서 내가 당첨될 수 있는 최고의 등수와 최저의 등수를 확인해라
학교 다닐 때 숱하게 나왔던 동생이 낙서해서 알아볼 수 없게 된... 어쩌고... 문제였다
for문으로 푸는 방법을 해볼까 했는데 한창 hashSet을 익히는 중이라 이번 문제는 hashSet으로 풀어봤다
작성 코드
import java.util.*;
class Solution {
public int[] solution(int[] lottos, int[] win_nums) {
//answer의 크기는 항상 2
int[] answer = new int[2];
HashSet<Integer> winArr = new HashSet<>();
for (int wNum : win_nums) {
winArr.add(wNum);
}
int right = 0;// 당첨 번호
int zero = 0;// 0일 경우
for(int l : lottos) {
if(l == 0) {
zero++;
} else if(winArr.contains(l)) {
right++;
}
}
int max = right+zero;//가장 높은 등수는 당첨번호 + 0
int min = right;//당첨번호만
//1개만 당첨되면 7등, 아니면 7 - max등
answer[0] = 7 - max == 7 ? 6: 7 - max;
answer[1] = 7 - min == 7 ? 6 : 7 -min;
return answer;
}
}
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/JAVA] 같은 숫자는 싫어 (0) | 2025.03.02 |
---|---|
[프로그래머스/JAVA] 지폐 접기 (0) | 2025.03.02 |
[프로그래머스/JAVA] 없는 숫자 더하기 (1) | 2025.03.02 |