Algorithm Problems
[백준] [Python] 10828번 스택, 10845번 큐, 10866번 덱 - 기초
WakaraNai
2021. 4. 24. 22:41
728x90
반응형
10828번: 스택
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지
www.acmicpc.net
Python
import sys
stack = []
for _ in range(int(sys.stdin.readline())):
command = sys.stdin.readline().split()
if command[0] == "push":
stack.append(int(command[1]))
elif command[0] == "top":
if stack == []:
print(-1)
else:
print(stack[-1])
elif command[0] == "size":
print(len(stack))
elif command[0] == "empty":
if stack==[]:
print(1)
else:
print(0)
elif command[0] == "pop":
if stack == []:
print(-1)
else:
print(stack[-1])
stack.pop()
import sys
stack = []
for _ in range(int(sys.stdin.readline())):
command = sys.stdin.readline().split()
if command[0] == "push":
stack.append(int(command[1]))
elif command[0] == "top":
print( -1 if stack == [] else stack[-1])
elif command[0] == "size":
print(len(stack))
elif command[0] == "empty":
print( 1 if stack == [] else 0)
elif command[0] == "pop":
if stack == []:
print(-1)
else:
print(stack[-1])
stack.pop()
10845번: 큐
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지
www.acmicpc.net
Python
import sys
q = []
for _ in range(int(sys.stdin.readline())):
command = sys.stdin.readline().split()
if command[0] == "push":
q.append(int(command[1]))
elif command[0] == "pop":
if q == []:
print(-1)
else:
print(q[0])
del q[0]
elif command[0] == "size":
print(len(q))
elif command[0] == "empty":
print(1 if q==[] else 0)
elif command[0] == "front":
print(q[0] if q!=[] else -1)
elif command[0] == "back":
print(q[-1] if q!=[] else -1)
10866번: 덱
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지
www.acmicpc.net
Python
import sys
dq = []
for _ in range(int(sys.stdin.readline())):
cmd = sys.stdin.readline().rstrip()
#print(cmd,dq)
if cmd == "pop_front":
if len(dq)==0: print(-1)
else: print(dq.pop(0))
elif cmd == "pop_back":
print(-1 if len(dq)==0 else dq.pop() )
elif cmd == "size":
print(len(dq))
elif cmd == "empty":
print(1 if len(dq)==0 else 0)
elif cmd == "front":
print(-1 if len(dq)==0 else dq[0] )
elif cmd == "back":
print(-1 if len(dq)==0 else dq[-1] )
else:
cmd = cmd.split()
if cmd[0] == "push_front":
dq.insert(0, int(cmd[1]))
elif cmd[0] == "push_back":
dq.append(int(cmd[1])
728x90
반응형