Question
https://school.programmers.co.kr/learn/courses/30/lessons/77484
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
Algorithm
- 순서와 상관없이 주어진 win_nums와 일치하는 번호를 구하면 된다.
- lottos 배열을 확인하면서 0의 개수를 세어 zero에 저장한다.
- 당첨 번호(win_nums)와 일치하는 번호의 개수를 세어 count에 저장한다.
- 최고 순위는 count + zero를 맞췄다고 가정했을 때의 등수이다.
- 최저 순위는 count만 맞췄다고 가정했을 때의 등수이다.
- 맞춘 개수에 따라 등수를 반환하는 rank() 메서드를 만든다.
- answer[0]에는 최고 순위를, answer[1]에는 최저 순위를 저장하여 반환한다.
Code
class Solution {
public int[] solution(int[] lottos, int[] win_nums) {
int[] answer = new int[2];
// lottos에 win_nums와 일치하는 번호 개수
int count = 0;
// lottos 0의 개수
int zero = 0;
// lottos 배열의 각 번호를 확인
for (int i = 0; i < lottos.length; i++) {
if (lottos[i] == 0) {
zero++;
continue; // 다음 번호 확인
}
// 번호가 0이 아닌 경우, 당첨 번호(win_nums)와 비교
for (int j = 0; j < win_nums.length; j++) {
if (win_nums[j] == lottos[i]) {
count++;
continue;
}
}
}
answer[0] = rank(count + zero);
answer[1] = rank(count);
return answer;
}
// 맞춘 번호 개수에 따라 순위를 반환하는 메서드
private static int rank(int num) {
if (num == 6) {
return 1; // 6개 맞추면 1등
} else if (num == 5) {
return 2; // 5개 맞추면 2등
} else if (num == 4) {
return 3;
} else if (num == 3) {
return 4;
} else if (num == 2) {
return 5;
} else {
return 6;
}
}
}
🔎 프로그래머스 다른 사람의 풀이
import java.util.HashMap;
import java.util.Map;
class Solution {
public int[] solution(int[] lottos, int[] win_nums) {
Map<Integer, Boolean> map = new HashMap<Integer, Boolean>();
int zeroCount = 0;
for(int lotto : lottos) {
if(lotto == 0) {
zeroCount++;
continue;
}
map.put(lotto, true);
}
int sameCount = 0;
for(int winNum : win_nums) {
if(map.containsKey(winNum)) sameCount++;
}
int maxRank = 7 - (sameCount + zeroCount);
int minRank = 7 - sameCount;
if(maxRank > 6) maxRank = 6;
if(minRank > 6) minRank = 6;
return new int[] {maxRank, minRank};
}
}'Coding Test > [프로그래머스] Java' 카테고리의 다른 글
| [프로그래머스 / Java] Lv.2 숫자 변환하기 (0) | 2025.10.11 |
|---|---|
| [프로그래머스 / Java] Lv.1 숫자 짝꿍 (0) | 2025.09.28 |
| [프로그래머스 / Java] Lv.2 튜플 (0) | 2025.09.12 |
| [프로그래머스 / Java] Lv.1 [1차] 비밀지도 (0) | 2025.09.07 |
| [프로그래머스 / Java] Lv.1 소수 만들기 (0) | 2025.09.06 |