728x90
< 해결 방법 >
초기에는 쉬운 문제인줄 알고 접근했으나 생각보다 따질 것이 많아서 계속 실패했다. 구글링을 통해 해결 방법을 숙지하고 다시 해결을 하였다. del open[-1] 을 안해서 계속 오류가 났었고 이를 해결했다.
import sys
def check(a):
if (a.count("(") != a.count(")")) or (a.count("[") != a.count("]")):
return False
# if '(' not in a and ')' not in a and '[' not in a and ']' not in a:
# return True
open = [ ]
close = [ ]
for i in range(0,len(a)):
if a[i]=="(" or a[i]=="[":
open.append(a[i])
if a[i]==")":
if "(" not in open:
return False
else:
if open[-1]!="(":
return False
else:
del open[-1]
if a[i]=="]":
if "[" not in open:
return False
else:
if open[-1]!="[":
return False
else:
del open[-1]
return True
while True:
a = list(sys.stdin.readline().rstrip())
if len(a)==1 and a[0]==".":
break
else:
if check(a)==True:
print("yes")
else:
print("no") 728x90
'🟢 알고리즘 문제 풀이 > Baekjoon' 카테고리의 다른 글
| [파이썬] 백준 2164 카드2 (0) | 2022.09.22 |
|---|---|
| [파이썬] 백준 1931 회의실 배정 (0) | 2022.09.20 |
| [파이썬] 백준 10773 제로 (0) | 2022.09.14 |
| [파이썬] 백준 10828 스택 (0) | 2022.09.13 |
| [파이썬] 백준 9012 괄호 (0) | 2022.09.13 |