문제
입출력 예
풀이.
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;
}
}
'알고리즘 > 프로그래머스' 카테고리의 다른 글
(LEVEL 2)프로그래머스 - 카펫(JAVA) (0) | 2023.02.09 |
---|---|
(LEVEL 1)프로그래머스 - 같은 숫자는 싫어(JAVA) (0) | 2023.01.30 |
(LEVEL 1)프로그래머스 - 숫자 짝꿍(JAVA) (0) | 2023.01.15 |
(LEVEL 1)프로그래머스 - 햄버거 만들기(JAVA) (0) | 2023.01.14 |
(LEVEL 1)프로그래머스 - 가장 가까운 같은 글자(JAVA) (0) | 2023.01.12 |