레벨 1
https://programmers.co.kr/learn/courses/30/lessons/77484
[문제 정의]
최고 순위와 최저 순위를 차례로 출력하는 문제
[문제 풀이]
1. lottos, win_nums 배열을 비교해서 lottos의 0의 개수(zero)와 win_nums와 일치하는 수의 개수(equal)을 구한다.
2. 최고 순위: lottos.length - equal - zero + 1, 최저 순위: lottos.length - equal + 1를 answer에 저장하면 된다.
3. 조건이 더 있다.
[후기]
이런 조건이 있는 경우 어떤 조건이 있는지 미리 확인하고, 놓치고 있는 조건은 없는지 다시 생각해볼 필요가 있다.
class Solution {
public int[] solution(int[] lottos, int[] win_nums) {
int[] answer = new int[2];
int zero = 0;
int equal = 0;
for(int i=0;i<lottos.length;i++){
if(lottos[i]==0)
zero++;
for(int j=0;j<win_nums.length;j++){
if(lottos[i]==win_nums[j]){
equal++;
}
}
}
if(equal == 0 && zero == lottos.length){
answer[0] = 1;
answer[1] = lottos.length;
}else if(equal == lottos.length && zero == 0){
answer[0] = 1;
answer[1] = 1;
}else if(equal == 0 && zero == 0){
answer[0] = lottos.length;
answer[1] = lottos.length;
}
else{
answer[0] = lottos.length - equal - zero + 1;
answer[1] = lottos.length - equal + 1;
}
return answer;
}
}