[伯俊]9012かっこ
🦧ソース
白駿9012
🦧コンセプト
🔥 スタック(スタック)
スタックは一時的にデータを格納する際に用いられるデータ構造であり,後入先出(LIFO)方式を採用している.
Pythonはスタックがほとんどないのでlistを使います.
スタックにデータを入れる操作をpushと呼びます.リストを利用するのでlistです.append(a)を使用します.
これに対して,スタック内のデータを削除する操作をpop,listと呼ぶ.pop(a)を活用する.
🔥 アイデア
psに入力されたカッコがvpsになる条件は、2つのカッコが次のようにペアリングされることです.
()
私が目で括弧を見て判断したとき、真ん中から正しいかどうかを探しました.△もちろん、この方法自体が間違っている可能性があります.それをコードで表現する能力がなく、あまり効率的ではないと思ったので、まず条件に合った友達から削除することにしました.この仮定に基づいて、「(」を入力してstackに保存し、別の「」を入力した場合、stackを空にします.最終的にvpsになりたいなら、スタックには何も存在しないでいいです.
🦧コード#コード#
🔥 マイコード
import sys
n = int(sys.stdin.readline())
for _ in range(n):
stack = []
ps = sys.stdin.readline()
for p in ps:
if p == '(':
stack.append(p)
elif p == ')':
if len(stack) > 0:
stack.pop()
else:
print("NO")
break
else:
if len(stack) == 0:
print("YES")
else:
print("NO")
Reference
この問題について([伯俊]9012かっこ), 我々は、より多くの情報をここで見つけました https://velog.io/@nikevapormax/백준-9012-괄호テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol