문제 설명
제출한 코드
import java.util.HashSet;
import java.util.Set;
class Solution {
public int thirdMax(int[] nums) {
int thirdMax = Integer.MIN_VALUE;
int secondMax = Integer.MIN_VALUE;
int max = Integer.MIN_VALUE;
Set set = new HashSet();
for (int num : nums) {
set.add(num);
if (num == max) {
continue;
}
if (num > max) {
thirdMax = secondMax;
secondMax = max;
max = num;
} else {
if (num == secondMax) {
continue;
}
if (num > secondMax) {
thirdMax = secondMax;
secondMax = num;
} else {
if (num == thirdMax) {
continue;
}
if (num > thirdMax) {
thirdMax = num;
}
}
}
}
if (set.size() < 3) {
return max;
} else {
return thirdMax;
}
}
}
잘한점
- 문제 제출 하기 전 생각을 이전보다는 더 하고 제출 함
- 풀이 방식을 바로 생각 해 냄
개선할점
- 여전히 예외 케이스를 다 생각하지 못한 채로 제출 함
- MIN_VALUE로 초기화 하기
- 중복 할당 배제하기 ( using continue )
- max return case 한번 더 생각했어야 함