標準/インデックス/10866
Question
質問リンク
Silver 4
整数を格納するDequeを実行し、入力としてのコマンドを処理するプログラムを作成します.
命令は全部で8条ある. push frontX:整数Xをインデックスの前に配置します. push backX:整数Xをインデックスの後ろに配置します. pop front:インデックスの一番前の数字を削除し、その数字を出力します.インデックスに整数がない場合は、-1が出力されます. pop back:dexの最後の数字を出力します.インデックスに整数がない場合は、-1が出力されます. size:インデックス内の整数の個数を出力します. 空:インデックスが空の場合、1または0が出力されます. front:インデックスの一番前の整数を出力します.インデックスに整数がない場合は、-1が出力されます. back:インデックスの一番後ろの整数を出力します.インデックスに整数がない場合は、-1が出力されます. Input
1行目に与えられるコマンド数N(1≦N≦10000).2行目からN行目までそれぞれ1つのコマンドがあります.与えられた整数は1以上であり、100000以下である.問題にない命令はない.
出力するコマンドが発行されるたびに、各行に1つのコマンドが出力されます.
デフォルト構造:deque
1.命令語を順番に読む.
2.命令の種類によって区分する.
Code
質問リンク
Silver 4
整数を格納するDequeを実行し、入力としてのコマンドを処理するプログラムを作成します.
命令は全部で8条ある.
1行目に与えられるコマンド数N(1≦N≦10000).2行目からN行目までそれぞれ1つのコマンドがあります.与えられた整数は1以上であり、100000以下である.問題にない命令はない.
15
push_back 1
push_front 2
front
back
size
empty
pop_front
pop_back
pop_front
size
empty
pop_back
push_front 3
empty
front
Output出力するコマンドが発行されるたびに、各行に1つのコマンドが出力されます.
2
1
2
0
2
1
-1
0
1
-1
0
3
Logicデフォルト構造:deque
1.命令語を順番に読む.
2.命令の種類によって区分する.
Code
import sys
deque=[]
for i in range(int(sys.stdin.readline())):
comm=sys.stdin.readline().split()
if comm[0]=='push_back': deque.append(comm[1])
elif comm[0]=='push_front': deque.insert(0,comm[1])
elif comm[0]=='pop_back': print('-1') if not deque else print(deque.pop())
elif comm[0]=='pop_front':
if not deque : print('-1')
else :
print(deque[0])
deque=deque[1:]
elif comm[0]=='size': print(len(deque))
elif comm[0]=='empty': print('0') if deque else print('1')
elif comm[0]=='back': print('-1') if not deque else print(deque[-1])
else : print('-1') if not deque else print(deque[0])
Reference
この問題について(標準/インデックス/10866), 我々は、より多くの情報をここで見つけました https://velog.io/@swany0509/백준-덱-10866テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol