개발/Leetcode

Leetcode 852. Peak Index in a Mountain Array

지산동고라니 2023. 7. 25. 09:36

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

 

Peak Index in a Mountain Array - LeetCode

Can you solve this real interview question? Peak Index in a Mountain Array - An array arr a mountain if the following properties hold: * arr.length >= 3 * There exists some i with 0 < i < arr.length - 1 such that: * arr[0] < arr[1] < ... < arr[i - 1] < arr

leetcode.com

 

문제

주어진 배열 다음과 같은 조건을 만족하면 산이 된다.

  • arr.length >= 3
  • 0 <= i < arr.length -1 이라면, arr[0] < arr[1] < ... < arr[i - 1] < arr[i]
  • arr[i] > arr[i + 1] > ... > arr[arr.length - 1

배열 arr가 주어질 때 arr[0] < arr[1] < ... < arr[i - 1] < arr[i] > arr[i + 1] > ... > arr[arr.length - 1] 를 만족하는 i를 찾아 반환하라

 

반드시 O(log(arr.length)) 시간 복잡도로 해결해야한다!

 

코드

#Python
class Solution:
    def peakIndexInMountainArray(self, arr: List[int]) -> int:
        return arr.index(max(arr))
 
// C#
public class Solution
{
    public int PeakIndexInMountainArray(int[] arr)
    {
        int peek = 0;

        for (int i = 1 ; i < arr.Length; i ++ ) {
            if ( arr[i] > arr[peek] ) {
                peek = i;
            }
        }
        return peek;
    }
}

이래도 괜찮은 걸까..