[Java] 프로그래머스 로또의 최고 순위와 최저 순위
2023. 2. 9. 15:15ㆍ알고리즘
728x90
문제 설명
제한사항
- lottos는 길이 6인 정수 배열입니다.
- lottos의 모든 원소는 0 이상 45 이하인 정수입니다.
- 0은 알아볼 수 없는 숫자를 의미합니다.
- 0을 제외한 다른 숫자들은 lottos에 2개 이상 담겨있지 않습니다.
- lottos의 원소들은 정렬되어 있지 않을 수도 있습니다.
- win_nums은 길이 6인 정수 배열입니다.
- win_nums의 모든 원소는 1 이상 45 이하인 정수입니다.
- win_nums에는 같은 숫자가 2개 이상 담겨있지 않습니다.
- win_nums의 원소들은 정렬되어 있지 않을 수도 있습니다.
입출력 예
입출력 예 설명
코드 설명
import java.util.Scanner;
public class Solution {
public int[] solution(int[] lottos, int[] win_nums) {
int[] answer = new int[2];
int[] win = {6, 6, 5, 4, 3, 2, 1}; // 일치하는 번호가 있으면 카운트 늘리면서 win에서 등수 나타내줌.
// ex) 0,1개 맞으면 6등 2개 5등, 3개 4등, 4개 3등, 5개 2등, 6개 1등.
int maxCnt = 0; // 제일 높은 등수에서 맞은 개수 저장하기위해
int minCnt = 0; // 제일 낮은 등수에서 맞은 개수 저장하기위해
for (int i = 0; i < 6; i++) {
if (lottos[i] == 0) { // lottos[i] 가 0이면 로또번호를 일치하게 만들 수 있으므로 maxCnt++(제일 낮은 등수 구할땐 0이면 틀리게 계산)
maxCnt++;
}
for (int j = 0; j < 6; j++) {
if (lottos[i] == win_nums[j]) { // lottos[i] 가 win_nums[j] 랑 같으면 일치하는 횟수 ++ 해줌
maxCnt++;
minCnt++;
}
}
}
answer[0] = win[maxCnt]; // answer[0]에 제일 높은 등수
answer[1] = win[minCnt]; // answer[1]에 제일 낮은 등수
return answer;
}
public static void main(String[] args) {
Solution T = new Solution();
Scanner sc = new Scanner(System.in);
int[] lottos = new int[6];
int[] win_nums = new int[6];
for (int i = 0; i < 6; i++) {
lottos[i] = sc.nextInt();
}
for (int i = 0; i < 6; i++) {
win_nums[i] = sc.nextInt();
}
for (int x : T.solution(lottos, win_nums)) {
System.out.println(x + " ");
}
}
}
728x90
'알고리즘' 카테고리의 다른 글
[Java] 프로그래머스 내적 (0) | 2023.02.09 |
---|---|
[Java] 프로그래머스 신규 아이디 추천 (0) | 2023.02.09 |
[Java] 프로그래머스 삼총사 (0) | 2023.02.08 |
[Java] 프로그래머스 약수의 개수와 덧셈 (0) | 2023.02.08 |
[Java] 프로그래머스 숫자 문자열과 영단어 (0) | 2023.02.08 |