[백준] 10845번 : 큐 (파이썬)

뚝딱이 공학도·2022년 2월 17일
0

문제풀이_백준

목록 보기
62/159
post-thumbnail

문제



나의 답안

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구조로 먼저 들어온 것이 제일 먼저 나간다.

  1. push함수는 함수의 인자로 추가할 값을 받는다. 해당 값을 큐에 append해준다.
  2. pop함수는 큐가 비어있지 않으면, 가장 앞의 값을 큐에서 제거한다.
  3. size함수는 큐의 길이를 구해(len) 큐 안의 정수의 개수를 구한다.
  4. empty함수는 큐가 비어있으면 1을 출력, 아니라면 0을 출력해준다.
  5. front함수는 큐가 비어있지 않으면, 큐의 가장 처음 저장된 값을 출력해준다.(que[0])
  6. back함수는 큐가 비어있지 않으면, 큐의 가장 마지막에 저장된 값을 출력해준다.(que[-1])

이렇게 함수를 정의해주고 난 후에는 반복문을 통해 n개의 명령을 입력 받으면 된다.
6. 명령+숫자 형식이므로 공백으로 분리된 입력을 받는다.
7. 명령이 push이면 push함수를 호출하고, 입력 받은 숫자(command[1])를 인자로 넘겨준다.
8. 다른 명령도 동일하게 함수를 호출해주면 된다.

0개의 댓글