🔗 문제 링크
📖 풀이 과정
- 배열을 순회하며, 해당값이 몇을 반환해야 하는지 구하는 구현문제입니다.
- 최고 등수는 0이 다 맞는 경우, 최저 등수는 0이 하나도 안맞는 경우 즉 0이 아닌 숫자들이 win_nums 배열과 일치할 때입니다.
- 그렇기에 2중 for문으로 돌면서 값을 비교 및 0인 경우의 수를 각각 변수에 계산해주면 됩니다.
- 몇 등인지 구하는 getRank(int win)메소드에서는 switch문을 이용해 구현했습니다.
- 여기서, case 0일때와 1일때는 똑같이 6등을 반환하기에 case 0 인 경우에는 별다른 조치를 하지 않았습니다.
- 이 의미는 switch 문법을 알고 계시면 이해하실 것으로 생각됩니다.
- 최종적으로는 크기가 2인 배열에 최고 등수와 최저 등수를 반환하면 됩니다.
💻 코드
class Solution {
public int[] solution(int[] lottos, int[] win_nums) {
// 최저 등수는 0이 아닌 숫자의 개수
// 최고 등수는 0이 다 맞는 다는 가정
// 등수 반환 메소드 따로 필요
int winCount = 0;
int zeroCount = 0;
int[] answer = new int[2];
for(int i = 0; i< lottos.length; i++){
if(lottos[i] == 0){
zeroCount += 1;
}
for(int j = 0; j< win_nums.length; j++){
if(lottos[i] == win_nums[j]){
winCount += 1;
break;
}
}
}
answer[0] = getRank(winCount + zeroCount);
answer[1] = getRank(winCount);
return answer;
}
private int getRank(int win){
int rank = 0;
switch(win){
case 0 :
case 1:
rank = 6;
break;
case 2:
rank = 5;
break;
case 3:
rank = 4;
break;
case 4:
rank = 3;
break;
case 5:
rank = 2;
break;
case 6:
rank = 1;
break;
}
return rank;
}
}
'Algorithm > 프로그래머스' 카테고리의 다른 글
프로그래머스 : 신고 결과 받기 (Java) (0) | 2022.02.15 |
---|---|
프로그래머스 : 신규 아이디 추천 (Java) (0) | 2022.02.13 |
프로그래머스 : 소수 찾기 (Java) (0) | 2022.02.12 |
프로그래머스 : 나머지가 1이 되는 수 찾기 (Java) (0) | 2022.02.12 |
프로그래머스 : 없는 숫자 더하기 (Java) (0) | 2022.02.12 |