- 진행
일자 | 완료 번호 |
24.07.16 | 1~20 |
24.07.17 | 21~35 |
24.07.18 | 36~42 |
24.07.19 | 43~47 |
24.07.22 | 48~50 |
24.07.23 | 51~55 |
24.07.24 | 56~57 |
24.07.25 | 58 |
24.07.26 | 59~60 |
24.07.29 | 61 |
- 회고
61. https://school.programmers.co.kr/learn/courses/30/lessons/77484
import java.util.*;
class Solution {
public int[] solution(int[] lottos, int[] win_nums) {
List<Integer> li = new ArrayList<>();
Arrays.sort(lottos);
int joker = 0;
for (int i = 0; i < lottos.length; i++) {
if (lottos[i] != 0) {
li.add(lottos[i]);
} else {
joker++;
}
}
int cnt = 0;
for (int n : win_nums) {
if (li.contains(n)) {
cnt++;
}
}
int min = cnt;
int max = joker + cnt;
int[] answer = new int[2];
if(max < 2){
answer[0] = 6;
answer[1] = 6;
}else {
answer[0] = 7 - max;
answer[1] = cnt >= 1 ? 7 - min : 6;
}
return answer;
}
}
- 풀이과정
- 내 로또 번호를 리스트에 저장
- 값이 0인 경우와 아닌경우로 분리
- 당첨 배열에 들어있는지 여부 확인(list.contains메서드 사용)
- 최소값 min은 cnt값
- 최대값 max는 cnt + joker(확인 불가한 번호)
- 최대값이 2 미만이라면 최저, 최고의 경우 모두 6등
- 아닌 경우 최대는 7 - cnt
- 최소는 cnt가 2이상면 7-cnt 2미만이면 6등
- 회고
- 처음에 다음과 같은 경우를 누락
→ max값이 2미만인경우 6둥(7등은없음)
'Java & Spring > 코딩테스트' 카테고리의 다른 글
13일차 - 알고리즘 코드카타(시간초과) (0) | 2024.07.31 |
---|---|
12일차 - 알고리즘 코드카타(실패) (0) | 2024.07.31 |
10일차 - 알고리즘 코드카타 (0) | 2024.07.26 |
9일차 - 알고리즘 코드카타 (0) | 2024.07.25 |
8일차 - 알고리즘 코드카타 (0) | 2024.07.24 |