😎풀이

해당 문제는 간단히, 내 앞 뒤에 있는 요소가 모두 나보다 작다면 그 인덱스를 반환하면 되는 문제이다.

풀이 과정은 다음과 같다.

  1. nums 배열 1회 순회 O(n)
  2. 현재 요소의 앞 뒤 요소를 비교하며 하나라도 작거나 같다면 무시
  3. 모두 현재 요소보다 작은 수라면 현재의 인덱스 반환
  4. 찾지 못했다면 배열의 마지막 인덱스 반환
function findPeakElement(nums: number[]): number {
    for(let i = 0; i < nums.length; i++) {
        const current = nums[i]
        // 앞 뒤로 더 큰 요소가 있다면 무시
        if(current <= nums[i - 1]) continue
        if(current <= nums[i + 1]) continue
        return i 
    }
    // 마지막 요소가 가장 큰 요소
    return nums.length - 1
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글