문제
https://programmers.co.kr/learn/courses/30/lessons/77484
내 코드
public List<Integer> solution(int[] lottos, int[] win_nums) {
List<Integer> result = new ArrayList<Integer>();
List<Integer> windList = new ArrayList<Integer>();
//1
for(int i=0; i<6; i++) {
windList.add(win_nums[i]);
}
//2
int cnt = 0;
int zeroCnt = 0;
for(int i=0; i<6; i++) {
if(lottos[i] == 0)
zeroCnt++;
if(windList.contains(lottos[i])) {
cnt++;
}
}
//3
int maxCnt = cnt + zeroCnt;
int minCnt = cnt;
result.add(record(maxCnt));
result.add(record(minCnt));
return result;
}
//4
public int record(int count) {
if( count == 6)
return 1;
if( count == 5)
return 2;
if( count == 4)
return 3;
if( count == 3)
return 4;
if( count == 2)
return 5;
else
return 6;
}
풀이
- win_nums array를 List 타입 변수에 넣어준다.(이후에 contains 함수를 사용하기 위해서)
- 반복문을 돌면서 배열의 0의 개수와 맞힌 개수를 세준다.
- 최대 등수와 최소 등수를 구한다.
- 몇등에 당첨됐는지를 int형 정수로 return 해준다.