알고리즘/프로그래머스
(LEVEL 1)프로그래머스 - 로또의 최고 순위와 최저 순위(JAVA)
꾸준함
2023. 1. 18. 21:46
문제
입출력 예
풀이.
1. 크기만큼 반복문을 돌며 lottos에 저장된 값과 win_nums에 저장된값을 하나씩 비교하며 0의 개수, 일치하는 개수를 따로 저장.
2. 기존 로또와 다르게 등수는 1등-6개/2등-5개/3등-4개/4등-3개/5등-2개/그외 6등으로 이걸 식으로 계산해보면
(7 - 맞춘개수)를하면 등수가 된다. 예외로 맞춘개수가 없을경우 최저순위는 6등이므로 min(7-맞춘개수,6)을 통해 최저순위를 6등으로 치환해준다.
3. 맞춘개수와 0의 개수에 따라서 최고순위(7-맞춘개수+0의개수) 와 최저순위(7-맞춘개수) 를 따로 저장,
코드
class Solution {
public int[] solution(int[] lottos, int[] win_nums) {
// 1등-6개 2등-5개 3등-4개 4등-3개 5등-2개 그외 6등
int[] answer = new int[2];
int zero = 0;
int cnt = 0;
for(int i =0;i<lottos.length;i++){
if(lottos[i] == 0)
zero++;
else{
for(int j=0;j<win_nums.length;j++){
if(lottos[i] == win_nums[j]){
cnt++;
}
}
}
}
answer[0] = Math.min(7-(cnt+zero),6);
answer[1] = Math.min(7-cnt,6);
return answer;
}
}