1번 문제.
https://www.acmicpc.net/problem/4949
-> 균형잡힌 세상
import sys
while True:
sentence = sys.stdin.readline().rstrip()
bracket = []
true_flag = 1
for i in sentence:
if i == '(' or i == '[':
bracket.append(i)
elif i == ']':
if len(bracket) != 0 and bracket[-1] == '[':
bracket.pop()
else:
true_flag = 0
break
elif i == ')':
if len(bracket) != 0 and bracket[-1] == '(':
bracket.pop()
else:
true_flag = 0
break
if sentence == '.':
break
if true_flag == 1:
print('yes')
else:
print('no')
=======================================================
import sys
while True:
# 문장들을 원하는 만큼 입력 받기
sentence = sys.stdin.readline().rstrip()
# 괄호를 체크할 리스트
bracket = []
# 맞으면 1, 틀리면 0
true_flag = 1
for i in sentence:
# 만약 문장에서 '(' 이나 '['이 있으면 bracket리스트에 추가
if i == '(' or i == '[':
bracket.append(i)
# 만약 ']' 가 보이면,
elif i == ']':
# bracket 리스트가 비어있지 않고, 여는 괄호가 ']'와 짝이 맞다면,
if len(bracket) != 0 and bracket[-1] == '[':
bracket.pop() # 맞는 것은 1, 그리고 결국엔 bracket안에 아무것도 남지 않음
else:
true_flag = 0 # 틀렸으면 0 그리고 멈춤
break
# 만약 ')' 가 보이면,
elif i == ')':
# bracket 리스트가 비어있지 않고, 여는 괄호가 ')'와 짝이 맞다면,
if len(bracket) != 0 and bracket[-1] == '(':
bracket.pop() # 맞는 것은 1, 그리고 결국엔 bracket안에 아무것도 남지 않음
else:
true_flag = 0 # 틀렸으면 0 그리고 멈춤
break
# 만약 '.'이면 종료한다.
if sentence == '.':
break
# 만약 bracket 안에 아무것도 없고, true_flag가 1이면 yes 아니면 no 출력
if true_flag == 1 and len(bracket) == 0:
print('yes')
else:
print('no')
=======================================================
진짜 괜히 다른 곳에서 찾을게 아니라 조건을 어떻게 줬는지를 잘 생각해볼 것
오늘은 여기까지.