반응형
https://programmers.co.kr/learn/courses/30/lessons/77484
코딩테스트 연습 - 로또의 최고 순위와 최저 순위
로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호
programmers.co.kr
import java.util.Arrays;
class Solution {
public int[] solution(int[] lottos, int[] win_nums) {
int[] answer = new int[2];
int count = 0;
int zeroCount = 0;
for(int i = 0; i < lottos.length; i++){
if(lottos[i] == 0){
zeroCount++;
}
for(int j = 0; j < win_nums.length; j++){
if(lottos[i] == win_nums[j]){
count++;
}
}
}
int a = calc(count);
int b = calc(count+zeroCount);
answer[1] = a;
answer[0] = b;
return answer;
}
static int calc(int count){
int win = 7 - count;
if(win == 7) win = 6;
return win;
}
}
풀이
1. int[] answer = new int[2] 배열을 만든다(최고 순위, 최저 순위 순)
2. zeroCount(알아볼 수 없는 번호의 개수)와 count(당첨번호와 일치하는 번호의 개수)를 각각 구한다
3. calc(count);와 calc(count+zeroCount);를 각각 구한다 => 당첨될 수 있는 최저순위, 최고순위 구하기
4. 최저 순위와 최고 순위를 구해서 배열에 최고 순위, 최저 순위 순으로 넣어야 하니 그에 맞게 배열에 값을 넣어 준다.
(calc(count);(최저순위)는 calc(count+zeroCount);(최고순위)보다 더 높은 순위일 수 없으므로 calc(count+zeroCount);는 배열의 첫번째([0]), calc(count);는 배열의 두번째([1])에 넣어준다.)
728x90
'Coding Test > 프로그래머스' 카테고리의 다른 글
[프로그래머스 자바 JAVA] 더 맵게 (level 2) (0) | 2022.03.15 |
---|---|
[프로그래머스 자바 JAVA] 모의고사 (level 1) (0) | 2022.03.14 |
[프로그래머스 자바 JAVA] 콜라츠 추측 (level 1) (0) | 2021.09.28 |
[프로그래머스 자바 JAVA] 평균 구하기 (level 1) (0) | 2021.09.27 |
[프로그래머스 자바 JAVA] 하샤드 수 (level 1) (0) | 2021.09.27 |
댓글