"""
입출력 예시)
s = "()()" -> true
s = "(())()" -> true
s = ")()(" -> false
s = "(()(" -> false
"""
def solution(s):
answer = True
s_list = list(s)
for i in range(len(s_list)):
if s_list[0] == '(' and s_list[len(s_list)-1] == ')':
answer = True
else:
answer = False
return answer
-> 이렇게 했더니 테스트 케이스 3개, 효율성 테스트에서 하나를 실패했다.
찾아보니 스택을 이용해서 풀어야했음
정답 코드
def solution(s):
stack = []
for i in s:
if i == "(": # '(' 문자로 괄호가 열린 경우
stack.append(i) # stack 리스트에 해당 문자 추가
else: # ')' 문자로 괄호가 닫힌 경우
if stack == []: # 꺼낼 문자가 없다면
return False # False 리턴
else:
stack.pop() # stack 리스트의 '(' 문자를 하나 꺼냄
return len(stack) == 0 # stack 리스트가 빈 배열이라면 True, 그렇지 않다면 False를 리턴