1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
import java.util.Arrays;
class Solution {
public int solution(int[] array) {
Arrays.sort(array);
int answer = 0;
int max = 0;
int maxNum = array[0];
int count = 1;
for (int i = 1; i < array.length; i++) {
if (array[i] == array[i-1]) {
count++;
if(count > max) {
max = count;
maxNum = array[i];
}
else if (count == max) {
maxNum = -1;
}
}
else {
count = 1;
}
}
answer = maxNum;
return answer;
}
}
|
cs |
위의 코드는 내가 풀어낸 방식이다.
솔직히... 당연히 통과할 줄 알았다.
그런데
아무리 찾아봐도 어떤 테스트 케이스에서 실패하는 건지를 찾을 수가 없어서 구글링을 통해 해당 문제를 통과한 사람의 코드를 가져와 내 코드와 비교해볼 생각이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
class Solution {
public int solution(int[] array) {
int answer = array[0];
int max = 0; int frequent[] = new int[1000];
for(int i = 0; i < array.length; i++) {
frequent[array[i]]++;
if(max < frequent[array[i]]) {
max = frequent[array[i]];
answer = array[i];
}
}
int temp = 0; // 여러 개인 지
for(int j = 0; j < 1000; j++) {
if(max == frequent[j]) temp++;
if(temp > 1) answer = -1;
}
return answer;
}
}
|
cs |
위의 코드는 모든 테스트 케이스를 통과한 코드로, 이를 자세히 분석해보자.
class Solution {
public int solution(int[] array) {
int answer = array[0];
// array의 첫 번째 요소로 초기화된 answer 선언
int max = 0; int frequent[] = new int[1000];
// 0으로 초기화된 max 변수와 크기가 1000인 정수형 배열 frequent를 선언
for(int i = 0; i < array.length; i++) {
frequent[array[i]]++; // requent 배열의 해당 요소 값을 증가
if(max < frequent[array[i]]) { // frequent값이 max보다 크면
max = frequent[array[i]]; // max값을 갱신하고
answer = array[i]; // answer값을 배열 array의 현재 요소 값으로 갱신
}
}
int temp = 0;
for(int j = 0; j < 1000; j++) {
if(max == frequent[j]) temp++; // max값과 같은 요소의 개수를 계산
if(temp > 1) answer = -1; // 개수가 1보다 크면 answer값을 -1로 갱신
}
return answer;
}
}
열심히 찾아보고 있지만... 어떤 케이스였길래 내 코드에선 실패하고 위에선 성공했는지 감이 안 잡힌다..ㅠㅠ
혹시나 찾으신 분이 있다면 댓글로 알려주시면 정말 감사합니다 :)
'각종 문제들' 카테고리의 다른 글
배포 자동화 중 오류 해결 (0) | 2023.04.04 |
---|---|
[프로그래머스] 코딩테스트 입문 - 옷가게 할인 받기 (0) | 2023.04.03 |
[프로그래머스] 코딩테스트 입문 - 분수의 덧셈 (0) | 2023.03.28 |
[프로그래머스] 코딩테스트 입문 (0) | 2023.03.28 |
코드 복습 - 이자율 구하기 (0) | 2023.01.13 |