어제 목표 & 오늘 완료한 한 일
- 웹개발 A to Z 응용
+ 알고리즘 문제
내일 목표
- 웹개발 A to Z 복습
- 웹개발 A to Z 응용
- 영화 데이터 불러오기
- 리뷰 검색
- 알고리즘 문제
발생한 문제와 해결
class Solution {
public int solution(int[] array) {
int answer = 0;
int lastNum = array[array.length-1];
int[] count = new int[lastNum+1];
int num = 0;
if(array.length == 1) {
answer = array[0];
} else {
for(int i=0; i<array.length; i++) {
num = array[i];
count[num]++;
}
int max1 = count[1];
int max2 = 0;
for(int i=2; i<count.length; i++) {
if(count[i] >= max1) {
max2 = max1;
max1 = count[i];
}
System.out.println(count[i]);
System.out.println(max1);
System.out.println(max2);
}
answer = (max1 == max2 ? -1 : max1);
}
return answer;
}
}
위와 같이 문제를 풀었는데 채점 결과, 2개의 오답과 10개의 런타임 에러로 인해 25점이 나왔다..
계속 생각하다보니 내가 풀었던 틀에서 벗어나서 코드를 짜기가 힘들었다. 처음부터 다시 생각해보자 싶어 계속 생각을 하다보니 최빈값과 그 횟수를 key, value에 넣으면 되니까 HashMap을 이용하면 좋을 것 같다는 생각을 하게 되었다.
그래서 HashMap 을 이용해서 코드를 수정해보았는데 하는 과정에서
Solution.java:11: error: cannot find symbol Map<Integer, Integer> map = new HashMap<>();
이와 같은 에러가 발생했다. 깜빡하고 import를 하지 않아 발생하는 에러였다.
import java.util.*; 를 해준 후 다시 채점을 해봤는데 런타임오류는 발생하지 않았지만 9개의 테스트를 실패하여 코드를 살펴보니 answer에 최빈값을 넣은 것이 아닌, array에 존재하는 최빈값의 갯수를 넣어준 상태였다. 그래서 그 값을 num으로 수정해주었더니 문제가 해결되었다.
느낀점
level 0 문제인데도 불구하고 2시간 이상의 시간이 소요됐다.. 알고리즘 공부를 많이 해야겠다는 것을 다시 한 번 느꼈다.
그리고 import 하는거 잊지말자 !!!!
'TIL & WIL' 카테고리의 다른 글
[TIL] #8. 230921 (0) | 2023.09.21 |
---|---|
[TIL] #7. 230920 (0) | 2023.09.20 |
[TIL] #5. 230918 (0) | 2023.09.18 |
[WIL] #1. 230914~230917 (0) | 2023.09.17 |
[TIL] #4. 230917 (0) | 2023.09.17 |