4/18学習問題
10606 ワード
最初の問題
https://www.acmicpc.net/problem/4949
->バランスのとれた世界
本当に別の場所で探すのではなく、条件がどのように与えられたのかよく考えてみましょう.
今日はここまでです.
https://www.acmicpc.net/problem/4949
->バランスのとれた世界
1-1番問題解決コード(エラー)
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')
=======================================================1-2問題解決コード(正しい)
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')
=======================================================本当に別の場所で探すのではなく、条件がどのように与えられたのかよく考えてみましょう.
今日はここまでです.
Reference
この問題について(4/18学習問題), 我々は、より多くの情報をここで見つけました https://velog.io/@hey_junie/418-스터디-문제テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol