코딩 공부/Leetcode

[Python] 941. Valid Mountain Array

일하는 공학도 2025. 1. 27. 14:52
728x90

난이도 : easy

 

 

위의 사진과 같이, mountaiin array가 성립하면 True를 return하는 문제

 

class Solution:
    def validMountainArray(self, arr: List[int]) -> bool:
        peak = max(arr)
        top = arr.index(peak)

        left = 0
        right = len(arr) - 1

        if top == left or top == right:
            return False

        while left < top:
            if arr[left] >= arr[left + 1]:
                return False
            left += 1
        
        while right > top:
            if arr[right] >= arr[right - 1]:
                return False
            right -= 1
        
        return True
  1. 산의 높이를 peak라고 생각하고, 지점을 top으로 설정
  2. 리스트 형태의 처음과 끝을 생각하고, left와 right를 각각 0과 arr-1로 설정
  3. top 위치가 left나 right가 되면 False
  4. left에서 top까지 arr의 값이 작아지거나 같으면 False
  5. right에서 top까지 arr의 값이 크거나 같으면 False

Runtime : 161ms (70.35%)

Memory : 19.02MB (45.91%)

728x90