[アルゴリズム]-Back Jun 1874(Stack)
3706 ワード
問題のソース
http://academy.dream-coding.com
コード#コード#
これはStackを利用した問題です.ずっと問題を理解していなかったので、グーグルで検索してみました.
問題例に示すように、入力は[4,3,6,8,7,5,2,1]と考えられる.
まず1をスタックにプッシュします->[1]
4->[1,2,3,4]になるまで
ここに入力した配列のようにするには、上のstackで2回ポップアップするだけです->[4,3]
このようにpushとpop演算入力の数列の問題を完成させる.
アルゴリズムは上記のように理解できる.
上記のアルゴリズムでは、while文が入力されている場合、スタックの最後の要素がnumでない場合、完了できない問題になります.この論理で「NO」を出力する部分を処理すればよい.
http://academy.dream-coding.com
コード#コード#
n = int(input())
stack = []
ans = []
chk = 1
j = 0
for i in range(n):
num = int(input())
while chk <= num:
stack.append(chk)
ans.append("+")
chk += 1
if stack[-1] == num:
stack.pop()
ans.append("-")
else:
print("NO")
j = 1
break
if j == 0:
for i in ans:
print(i)
メモこれはStackを利用した問題です.ずっと問題を理解していなかったので、グーグルで検索してみました.
問題例に示すように、入力は[4,3,6,8,7,5,2,1]と考えられる.
まず1をスタックにプッシュします->[1]
4->[1,2,3,4]になるまで
ここに入力した配列のようにするには、上のstackで2回ポップアップするだけです->[4,3]
このようにpushとpop演算入力の数列の問題を完成させる.
アルゴリズムは上記のように理解できる.
上記のアルゴリズムでは、while文が入力されている場合、スタックの最後の要素がnumでない場合、完了できない問題になります.この論理で「NO」を出力する部分を処理すればよい.
Reference
この問題について([アルゴリズム]-Back Jun 1874(Stack)), 我々は、より多くの情報をここで見つけました https://velog.io/@cychann/Algorithm-백준-1874-Stackテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol