본문 바로가기
코딩테스트 문제풀이/beakjoon

[백준] 18258 큐 2

by merona99 2021. 8. 20.
반응형

백준 18258번 큐 2

파이썬 / 자료구조 / 큐

 

 

 

 

[문제]

 

 

 

 

 

 

[과정]

 

간편한 deque 라이브러리를 사용하여 구현했다.

 

deque 생성

from collections import deque

q = deque()

 

 

스택 구현

q.append() - 오른쪽 끝에 항목 추가

q.pop() - 오른쪽 끝에 항목 가져오면서 삭제

 

큐 구현

q.appendleft() - 왼쪽에서 값 입력

q.pop() - 오른쪽에서 값 출력(삭제)

q.appendleft - 왼쪽에 값 입력

q. popleft - 왼쪽의 값 출력(삭제)

 

 

리스트처럼 사용

q.insert(n,k) - n번째 항목에 k추가

q.remove(n) - n항목 삭제

 

 

 

 

[소스코드]

 

# 큐 2

import sys                                                         
from collections import deque
input = sys.stdin.readline 

n = int(input())
q = deque()

for _ in range(n):
    cmd = list(map(str, input().split()))
        
    if cmd[0] == 'push':
        q.append(cmd[1])
    elif cmd[0] == 'pop':
        if not q:
            print(-1)
        else:
            print(q.popleft())
    elif cmd[0] == 'size':
        print(len(q))
    elif cmd[0] == 'empty':
        if not q:
            print(1)
        else:
            print(0)
    elif cmd[0] == 'front':
        if not q:
            print(-1)
        else:
            print(q[0])
    elif cmd[0] == 'back':
        if not q:
            print(-1)
        else:
            print(q[-1])

 

 


 

 

 

[통과]

 

 

반응형

'코딩테스트 문제풀이 > beakjoon' 카테고리의 다른 글

[백준] 2346 풍선 터뜨리기  (0) 2021.09.27
[백준] 21608 상어 초등학교  (0) 2021.08.31
[백준] 1158 요세푸스 문제  (0) 2021.08.20
[백준] 14502 연구소  (0) 2021.08.16
[백준] 21921 블로그  (0) 2021.08.16

댓글