level 2. 괄호 확인하기
11 May 2017 | 알고리즘 프로그래밍문제
is_pair함수는 문자열 s를 매개변수로 입력받습니다. s에 괄호가 알맞게 짝지어져 있으면 True를 아니면 False를 리턴하는 함수를 완성하세요. 예를들어 s가 “(hello)()”면 True이고, “)(“이면 False입니다. s가 빈 문자열(““)인 경우는 없습니다.
풀이코드
- stack을 활용한다.
- 빈 stack 에는 “(“ 만 들어갈 수 있다.
- ”)” 이 올때까지 “(“ 를 쌓다가, “)” 이 오면 “(“ 하나와 함께 pop
- 마지막에 빈 stack 이 남으면 True, 아니면 False
def is_pair(s):
stack = []
for ch in s:
if ch == "(":
stack.append(ch)
elif ch == ")":
try:
stack.pop()
except IndexError:
return False
return len(stack) == 0