Google 태그 관리자 아이콘

알고리즘 풀이

.leetcode(852. Peak Index in a Mountain Array)

silvergoni 2022. 3. 29. 22:45
반응형

https://leetcode.com/problems/peak-index-in-a-mountain-array/

 

1. 2022.03.29 시도

소요시간: 4분

class Solution {
    public int peakIndexInMountainArray(int[] arr) {
        int peak = -1;
        for (int i=0; i<arr.length; i++) {
            if (peak < arr[i]) {
                peak = arr[i];
            } else {
                return i-1;
            }
        }
        
        return -1;
    }
}

풀이 접근 과정

문제상에서 배열이 보장되어있었다.
순서대로 읽어서 숫자가 작아지는 시점의 바로 전 인덱스를 리턴하면 되겠다 싶었다.

 

느낀점

  • 문제에서 조건을 많이 편하게 잡아줘서 수월하게 풀 수 있었다.
  • 이건 바이너리 서치로 풀어보는게 묘미이다.
class Solution {
    public int peakIndexInMountainArray(int[] arr) {
        int left = 0;
        int right = arr.length - 1;
        
        while (left < right) {
            int mid = left + (right - left)/2;
            
            if (arr[mid] < arr[mid+1]) {
                left = mid + 1;
            } else {
                right = mid;
            }       
        }
        
        return left;
    }

}

 


알고리즘 정리노트: .leetcode(알고리즘 문제풀이 접근)

반응형