2024년부터 새롭게 다시 시작하는 코딩테스트

2024년 4월 4일 (목)
Leetcode daily problem

1614. Maximum Nesting Depth of the Parentheses

https://leetcode.com/problems/maximum-nesting-depth-of-the-parentheses/?envType=daily-question&envId=2024-04-04

Problem

주어진 문자열의 중첩된 괄호의 최대 깊이를 구하는 문제이다.

문제를 번역해보면,
문자열은 다음 중 하나를 충족하는 경우 유효한 괄호 문자열인 VPS로 표시한다.

문자열 s로 표현된 VPS가 주어지면 s의 중첩 깊이를 반환하는 것이다.

Solution

linear search (선형 탐색)

문자열을 한 번 순회하면서 각 문자를 확인하고, 열린 괄호를 만나면 깊이를 증가시키고, 닫힌 괄호를 만나면 깊이를 감소시킨다. 중첩 길이의 최댓값을 업데이트하면서 최대 중첩 길이를 찾는다.

Code

class Solution:
    def maxDepth(self, s: str) -> int:
        maxDepth = 0
        curDepth = 0
        
        for char in s:
            if char == '(':
                curDepth +=1
                maxDepth = max(maxDepth, curDepth)
                
            elif char ==')':
                curDepth -=1
                
        return maxDepth
        

Complexicity

시간 복잡도

주어진 문자열을 한번 순회하므로 시간복잡도는 O(1)이다.

공간 복잡도

추가적인 데이터 구조를 사용하지않고 상수 변수만 사용하므로 공간복잡도는 O(1)이다.

profile
꿈꾸는 것도 개발처럼 깊게

0개의 댓글

관련 채용 정보