본문 바로가기
Algorithm/스택&큐&덱&힙

[백준] 18258번 큐 2

by HANNI하니 2023. 1. 21.

사용 언어 - Python3

18258번: 큐 2 (실버4, 큐)

문제 ★큐 문제

 

18258번: 큐 2

첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 2,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지

www.acmicpc.net

 

 

정답

deque([]) 문제

(코드 풀이)

1. 시간제한

import sys

n = int(sys.stdin.readline())

 

from collection import deque

deque로 queue를 구현한다. queue = deque([])

 

2. queue.popleft()

pop 명령어가 입력되었을 때, 큐에서 가장 앞(왼쪽)에 있는 정수를 빼고 출력하기

queue.popleft()

 

+  if len(queue) == 0: 대신 if not queue:

queue 안에 존재하는지 확인하기

# 정답1

import sys
from collections import deque
n = int(sys.stdin.readline())
queue = deque([])

for i in range(n):
    c = sys.stdin.readline().split()
    
    if c[0] == 'push': # 큐에 넣기
        queue.append(c[1])
        
    elif c[0] == 'pop': # 큐에서 가장 앞에 있는 정수 빼내고 출력
        if len(queue) == 0:
            print(-1)
        else:
            print(queue.popleft())
            
    elif c[0] == 'size': # 큐 정수개수 출력
        print(len(queue))
        
    elif c[0] == 'empty': # 큐 비어있는지 확인
        if len(queue) == 0:
            print(1)
        else:
            print(0)
    elif c[0] == 'front': #큐 가장 앞에 있는 정수 출력
        if len(queue) == 0:
            print(-1)
        else:
            print(queue[0])
    elif c[0] == 'back': #큐 가장 뒤에 있는 정수 출력
        if len(queue) == 0:
            print(-1)
        else:
            print(queue[-1])

 


레퍼런스

  • 정답 참고
 
  • 정답 깃허브
 

GitHub - yyeongeun/codingtest: 코딩테스트 공부

코딩테스트 공부. Contribute to yyeongeun/codingtest development by creating an account on GitHub.

github.com

 

'Algorithm > 스택&큐&덱&힙' 카테고리의 다른 글

[백준] 11866번 요세푸스 문제0  (1) 2023.01.22
[백준] 2164번 카드2  (0) 2023.01.22
[백준] 1874번 스택 수열  (0) 2023.01.20
[백준] 9012번 괄호  (0) 2023.01.20
[백준] 10773번 제로  (0) 2023.01.20

댓글