728x90
🔗 문제
💡 풀이
이 문제의 핵심은 0을 개수를 당첨 번호로 가정해서 최고 순위와 0을 제외해 최저 순위를 구하는 것이다.
- 최고 순위 : 0의 개수 + 맞은 번호의 수
- 최저 순위 : 맞은 번호의 수
최고 순위와 최저 순위는 위와 같이 구할 수 있다.
💻 코드
import java.util.*;
public class Solution {
public int[] solution(int[] lottos, int[] win_nums) {
int[] answer = new int[2];
Map<Integer, Integer> compareRank = init();
int zero_count = 0, same_number = 0;
for (int i = 0; i < 6; i++) {
if (lottos[i] == 0) {
zero_count += 1;
continue;
}
for (int j = 0; j < 6; j++) {
if (lottos[i] == win_nums[j]) {
same_number += 1;
break;
}
}
}
answer[0] = compareRank.get(same_number + zero_count);
answer[1] = compareRank.get(same_number);
return answer;
}
private Map<Integer, Integer> init() {
Map<Integer, Integer> ret = new HashMap<>();
int rank = 6;
for (int i = 0; i <= 6; i++) {
if (i == 0 || i == 1) {
ret.put(i, rank);
continue;
}
rank -= 1;
ret.put(i, rank);
}
return ret;
}
}
728x90
'Algorithm > 프로그래머스' 카테고리의 다른 글
[Java] 프로그래머스 Lv2 - 쿼드압축 후 개수 세기 (0) | 2022.04.13 |
---|---|
[Java] 프로그래머스 Lv2 - n^2 배열 자르기 (0) | 2022.04.12 |
[Java] 프로그래머스 - 점프와 순간 이동 (Level 2) (0) | 2022.04.09 |
[JAVA 풀이] 프로그래머스 - 이진 변환 반복하기 (Level2) (0) | 2022.04.07 |
[JAVA 풀이] 프로그래머스 - 캐시 (2018 KAKAO BLIND RECRUITMENT) (0) | 2022.04.07 |