[백준] 10845번 : 큐 (파이썬)
문제
나의 답안
import sys
input=sys.stdin.readline
n=int(input())
que=[]
def push(p):
que.append(p)
def pop():
if len(que)!=0:
print(que.pop(0)) #맨 앞 pop
else:
print(-1)
def size():
print(len(que))
def empty():
if len(que)==0:
print(1)
else:
print(0)
def front():
if len(que)!=0:
print(que[0])
else:
print(-1)
def back():
if len(que)!=0:
print(que[-1])
else:
print(-1)
for i in range(n):
command=input().split()
if command[0]=='push':
push(command[1])
elif command[0]=='pop':
pop()
elif command[0]=='size':
size()
elif command[0]=='empty':
empty()
elif command[0]=='front':
front()
elif command[0]=='back':
back()
구현 자체는 스택문제와 유사하다.
다만 LIFO인 스택과 달리
큐는 FIFO구조로 먼저 들어온 것이 제일 먼저 나간다.
- push함수는 함수의 인자로 추가할 값을 받는다. 해당 값을 큐에 append해준다.
- pop함수는 큐가 비어있지 않으면, 가장 앞의 값을 큐에서 제거한다.
- size함수는 큐의 길이를 구해(len) 큐 안의 정수의 개수를 구한다.
- empty함수는 큐가 비어있으면 1을 출력, 아니라면 0을 출력해준다.
- front함수는 큐가 비어있지 않으면, 큐의 가장 처음 저장된 값을 출력해준다.(que[0])
- back함수는 큐가 비어있지 않으면, 큐의 가장 마지막에 저장된 값을 출력해준다.(que[-1])
이렇게 함수를 정의해주고 난 후에는 반복문을 통해 n개의 명령을 입력 받으면 된다.
6. 명령+숫자 형식이므로 공백으로 분리된 입력을 받는다.
7. 명령이 push이면 push함수를 호출하고, 입력 받은 숫자(command[1])를 인자로 넘겨준다.
8. 다른 명령도 동일하게 함수를 호출해주면 된다.
Author And Source
이 문제에 관하여([백준] 10845번 : 큐 (파이썬)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@yj_lee/백준-10845번-큐-파이썬저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)