class Solution {
public boolean validMountainArray(int[] arr) {
boolean result = true;
int peak = 0;
int peakIndex = 0;
// 길이가 3보다 작으면X
if(arr.length < 3)
result = false;
// peak
for (int i = 0; i < arr.length; i++) {
if(peak < arr[i]) {
peak = arr[i];
peakIndex = i;
}
}
// peak가 맨 처음/마지막에 있으면 X
if(peakIndex == 0 || peakIndex == arr.length - 1)
result = false;
// 상승 검사
for (int i = peakIndex; i >= 1 ; i--) {
if(arr[i-1] >= arr[i]) {
result = false;
}
}
// 하강 검사
for (int i = peakIndex; i < arr.length - 1; i++) {
if(arr[i] <= arr[i+1]) {
result = false;
}
}
return result;
}
}
배열을 탐색할 때에는 index 바운더리를 항상 주의
'JAVA > leetcode' 카테고리의 다른 글
[LeetCode] Array - Move Zeroes - Two-pointer (0) | 2021.08.05 |
---|---|
[LeetCode] Array - Replace Elements with Greatest Element on Right Side (0) | 2021.08.05 |
[LeetCode] Array - Check If N and Its Double Exist (0) | 2021.08.05 |
[LeetCode] Array - Remove Duplicates from Sorted Array !! (0) | 2021.08.05 |
[LeetCode] Array - Remove Element !! (0) | 2021.08.05 |