LeetCode: Valid Mountain Array

이원희·2020년 12월 14일
0

📝 PS

목록 보기
25/65
post-thumbnail

문제 풀이

주어진 배열에서 가장 max 값을 찾았다.

  • arr[0] < arr[1] < ... < arr[max]
  • arr[max] < arr[max + 1] < ... < arr[length - 1]

찾은 max index를 기준으로 왼쪽 오른쪽 for문을 돌려서 해결했다.

class Solution {
    public boolean validMountainArray(int[] arr) {
        if(arr.length <= 2) {
            return false;
        }
        int index = getMaxIndex(arr);
        if(index == 0 || index == arr.length - 1) {
            return false;
        }
        
        int temp = arr[index];
        for(int i = index - 1; i >= 0; i--) {
            if(arr[i] >= temp) {
                return false;
            }
            temp = arr[i];
        }
        temp = arr[index];
        for(int i = index + 1; i < arr.length; i++) {
            if(arr[i] >= temp) {
                return false;
            }
            temp = arr[i];
        }
        return true;
    }
    
    public int getMaxIndex(int[] arr) {
        int max = arr[0];
        int i = 0;
        for(int index = 1; index < arr.length; index++) {
            if(max < arr[index]) {
                max = arr[index];
                i = index;
            }
        }
        return i;
    }
}

0개의 댓글