[프로그래머스] Lv2. 괄호 회전하기

lemythe423·2023년 7월 13일
0
post-thumbnail

📝 문제

⭕️ 풀이

스택을 사용한 올바른 괄호 판별

check 함수에서 올바른 괄호라면 1을 그렇지 않다면 0을 반환

괄호의 여는 부분((, [, {)이 들어온다면 스택에 추가하고, 닫는 부분(), ], })이 들어온다면 스택의 가장 위에 있는 괄호와 비교해 짝이라면 꺼내고, 짝이 아니라면 올바른 괄호가 아니므로 return 0

pair = {'}': '{', ')': '(', ']': '['}

def check(_s):
    stack = [_s[0]]
    for strs in _s[1:]:
        if strs in ('{', '(', '['):
            stack.append(strs)
            continue

        if stack and stack.pop() != pair[strs]:
            return 0

    if stack:
        return 0
    return 1

def solution(s):
    if len(s) == 1:
        return 0

    ans = 0
    for i in range(len(s)):
        ans += check(s[i:]+s[:i])
    return ans
profile
아무말이나하기

0개의 댓글