코딩 테스트/Baekjoon

S4 18258. 큐 2

  • -
728x90
반응형

문제 보기 :  18258번: 큐 2


문제

  • 정답률 : 32%


작성 코드

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

n = int(input().strip())

dd = deque()

for _ in range(n):
    k = input().rstrip()

    if k == 'pop':
        if dd:
            print(dd.popleft())
        else:
            print(-1)
    elif k == 'size':
        print(len(dd))
    elif k == 'empty':
        if dd:
            print(0)
        else:
            print(1)
    elif k == 'front':
        if dd:
            a = dd.popleft()
            print(a)
            dd.appendleft(a)
        else:
            print(-1)
    elif k == 'back':
        if dd:
            a = dd.pop()
            print(a)
            dd.append(a)
        else:
            print(-1)
    else:
        k, a = k.split()
        a = int(a)
        dd.append(a)

풀이

10845번: 큐 이 문제에서 달라진건 front/back 이 부분 정도?

원래 방법으로는 리스트로 변환 후 인덱스가 0,-1인 부분을 따졌다면
여기에서는 deque로 제거+입력을 하는 방식으로 변경해서 시간 제한을 통과했다.

320x100
728x90

'코딩 테스트 > Baekjoon' 카테고리의 다른 글

S2 4963. 섬의 개수  (1) 2024.12.09
S2 11725. 트리의 부모 찾기  (0) 2024.12.09
S4 10845. 큐  (0) 2024.12.07
S4 1018. 체스판 다시 칠하기  (0) 2024.12.07
S3 15654번: N과 M (5)  (0) 2024.12.05
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.