99클럽 코테 스터디 4일차 TIL + 스택/큐

Saang Bum Kim·2024년 5월 23일
0

99클럽

목록 보기
40/59

문제

올바른 괄호

풀이

  • ‘)’ 이 먼저 나오면 False
  • ‘)’ 이 나오면 ‘(’를 없앤다. 실패하면 False
  • 마지막엔 아무도 없어야 한다.
  • return 등에 'a if con else'와 같이 활용 !!!
    return len(a) == 0 (ref. tip)

  • '()'를 모두 없애고 남는게 있는지 확인하는 기막힌 방법도 있다. (ref. sol )

  • '({[' 문제에서는 dictionary 활용법도 괜찮은 듯

결과

def f_t(id_t):
    if id_t == 0:
        s, r = "()()", 	True
    elif id_t == 1:
        s, r = "(())()", 	True
    elif id_t == 2:
        s, r = ")()(", 	False
    elif id_t == 3:
        s, r = "(()(", 	False
    return s, r
from collections import deque
def solution(s):
    n = len(s)
    if s[0] == ')':
        return False
    a = deque()
    for i in range(n):
        if s[i] == '(':
            a.append('(')
        else:
            if len(a) == 0:
                return False
            else:
                a.pop()
    #if len(a) != 0:
    #    return False
    #return True
    return len(a) == 0
for id_t in range(4):
# for id_t in [1]:
    s, r = f_t(id_t)
    a = solution(s)
    print([a,r])

profile
old engineer

0개의 댓글