0. 사용 함수
- Arrays.sort(정렬할 배열)
- Arrays.binarySearch(배열, 찾을 변수 값) // 찾는 변수의 index리턴(0번 째부터 시작)
- Math.max(값1, 값2) // 두 값 중에 큰 값을 리턴
- Math.min(값1, 값2) // 두 값 중에 작은 값을 리턴
1. 문제 내용
- 설명
민우가 로또(6/45)를 구매했는데,
민우의 동생이 로또에 낙서를 해서 일부 번호가 지워져 버렸다.
당첨 번호 발표 후, 민우는 자신이 구매했던 로또로 당첨이 가능했던
'최고 순위'와 '최저 순위'를 알아보고 싶어 졌습니다.
(알아볼 수 없는 번호를 0으로 설정)
- 순위 당첨
1 | 6개 번호가 모두 일치 |
2 | 5개 번호가 일치 |
3 | 4개 번호가 일치 |
4 | 3개 번호가 일치 |
5 | 2개 번호가 일치 |
6(낙첨) | 그 외 |
- 제한 사항
lottos는 길이 6인 정수 배열입니다.
lottos의 모든 원소는 0 이상 45 이하인 정수입니다.
0은 알아볼 수 없는 숫자를 의미합니다.
0을 제외한 다른 숫자들은 lottos에 2개 이상 담겨있지 않습니다.
lottos의 원소들은 정렬되어 있지 않을 수도 있습니다.
win_nums은 길이 6인 정수 배열입니다.
win_nums의 모든 원소는 1 이상 45 이하인 정수입니다.
win_nums에는 같은 숫자가 2개 이상 담겨있지 않습니다.
win_nums의 원소들은 정렬되어 있지 않을 수도 있습니다.
2. 문제 풀이
import java.util.*;
class Solution {
public int[] solution(int[] lottos, int[] win_nums) {
//선언
int zeroCount = 0;
int sameCount = 0;
//배열 정렬
Arrays.sort(lottos);
Arrays.sort(win_nums);
//지워진 번호, 일치하는 번호 카운트
for(int i = 0; i < lottos.length; i++){
if(lottos[i] == 0){
zeroCount++;
} else{
if(0<=Arrays.binarySearch(win_nums, lottos[i])){
sameCount++;
}
}
}
int[] answer = {7-Math.max(sameCount+zeroCount,1), 7-Math.max(sameCount,1)};
return answer;
}
}
3. 채점 결과
- 정확성 테스트
테스트 1 〉 | 통과 (0.74ms, 58MB) |
테스트 2 〉 | 통과 (0.51ms, 57.7MB) |
테스트 3 〉 | 통과 (0.45ms, 58.1MB) |
테스트 4 〉 | 통과 (0.57ms, 57.8MB) |
테스트 5 〉 | 통과 (1.44ms, 58.6MB) |
테스트 6 〉 | 통과 (0.51ms, 58.5MB) |
테스트 7 〉 | 통과 (0.55ms, 57.3MB) |
테스트 8 〉 | 통과 (0.49ms, 57.8MB) |
테스트 9 〉 | 통과 (0.51ms, 58.1MB) |
테스트 10 〉 | 통과 (0.41ms, 56.4MB) |
테스트 11 〉 | 통과 (0.47ms, 59.4MB) |
테스트 12 〉 | 통과 (0.52ms, 59.4MB) |
테스트 13 〉 | 통과 (0.51ms, 58.4MB) |
테스트 14 〉 | 통과 (0.37ms, 58.1MB) |
테스트 15 〉 | 통과 (0.33ms, 56.9MB) |
쉽다고 생각했는데 생각 외로 애먹었다ㅜㅜ
처음 코딩할 때는 Math함수를 안 쓰고 그냥 7에서 빼기로 빼버렸는데
민수 동생이 낙서로 다 지워버려서 (0,0,0,0,0,0)인 경우를 통과하지 못하길래
최저순위의 경우 Math함수로 1보다 작은 값은 리턴하지 못하도록 만들어서 뺐다.
그런데!!!!!!
최고순위에서 0이 나올 일은 없다고 생각하고
최고순위는 Math.max처리를 안 해주니 테스트 14에서 실패가 뜨는 것.
0이 없고 전부 다 틀린 경우 (1,2,3,4,5,6)(7,8,9,10,11,12)인 경우에는
최고 순위에서 0이 나올 수가 있더라..ㅎ
이것 때문에 헤매서 왠지 엄청 손해 본 기분.
'프로그래머스 > JAVA' 카테고리의 다른 글
008. 폰켓몬[JAVA] (0) | 2022.05.22 |
---|---|
007. 체육복[JAVA] (0) | 2022.05.21 |
006. 모의고사[JAVA] (0) | 2021.12.30 |
004. 소수 만들기[JAVA] (0) | 2021.12.23 |
002. [카카오 인턴] 키패드 누르기[JAVA] (0) | 2021.12.18 |