[BOJ] 18258: 큐 2

이슬비·2023년 11월 23일
0

Algorithm

목록 보기
105/110
post-thumbnail

처음에 시간 초과가 나버렸다 ...!

1. 내 풀이: 실패

import sys
input = sys.stdin.readline

n = int(input())
queue = []

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

자자 큐 구현할 때는 자나깨나 collection의 deque로 구현하기!
리스트로 구현하면 뭐다?
시간 초과 난다 ~

2. 다른 풀이

import sys
from collections import deque
input = sys.stdin.readline
n = int(input())
queue = deque([])
for i in range(n):
    com = input().split()
    if com[0] == 'push':
        queue.append(com[1])
    elif com[0] == 'pop':
        if len(queue) == 0:
            print(-1)
        else:
            print(queue.popleft())
    elif com[0] == 'size':
        print(len(queue))
    elif com[0] == 'empty':
        if len(queue) == 0:
            print(1)
        else:
            print(0)
    elif com[0] == 'front':
        if len(queue) == 0:
            print(-1)
        else:
            print(queue[0])
    elif com[0] == 'back':
        if len(queue) == 0:
            print(-1)
        else:
            print(queue[-1])

출처: https://imzzan.tistory.com/4

deque 사용 방법 참고!

3. 느낀점

  • stack = list
  • queue = deque
profile
정말 알아?

0개의 댓글