(BOJ) 18358. 큐2

jmboy713Β·2023λ…„ 4μ›” 15일
0

μ½”λ”©ν…ŒμŠ€νŠΈ

λͺ©λ‘ 보기
6/27

문제

πŸ’‘ μ •μˆ˜λ₯Ό μ €μž₯ν•˜λŠ” 큐λ₯Ό κ΅¬ν˜„ν•œ λ‹€μŒ, μž…λ ₯으둜 μ£Όμ–΄μ§€λŠ” λͺ…령을 μ²˜λ¦¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€. λͺ…령은 총 μ—¬μ„― 가지이닀.

  • push X: μ •μˆ˜ Xλ₯Ό 큐에 λ„£λŠ” 연산이닀.
  • pop: νμ—μ„œ κ°€μž₯ μ•žμ— μžˆλŠ” μ •μˆ˜λ₯Ό λΉΌκ³ , κ·Έ 수λ₯Ό 좜λ ₯ν•œλ‹€. λ§Œμ•½ 큐에 λ“€μ–΄μžˆλŠ” μ •μˆ˜κ°€ μ—†λŠ” κ²½μš°μ—λŠ” -1을 좜λ ₯ν•œλ‹€.
  • size: 큐에 λ“€μ–΄μžˆλŠ” μ •μˆ˜μ˜ 개수λ₯Ό 좜λ ₯ν•œλ‹€.
  • empty: 큐가 λΉ„μ–΄μžˆμœΌλ©΄ 1, μ•„λ‹ˆλ©΄ 0을 좜λ ₯ν•œλ‹€.
  • front: 큐의 κ°€μž₯ μ•žμ— μžˆλŠ” μ •μˆ˜λ₯Ό 좜λ ₯ν•œλ‹€. λ§Œμ•½ 큐에 λ“€μ–΄μžˆλŠ” μ •μˆ˜κ°€ μ—†λŠ” κ²½μš°μ—λŠ” -1을 좜λ ₯ν•œλ‹€.
  • back: 큐의 κ°€μž₯ 뒀에 μžˆλŠ” μ •μˆ˜λ₯Ό 좜λ ₯ν•œλ‹€. λ§Œμ•½ 큐에 λ“€μ–΄μžˆλŠ” μ •μˆ˜κ°€ μ—†λŠ” κ²½μš°μ—λŠ” -1을 좜λ ₯ν•œλ‹€.

μž…λ ₯

첫째 쀄에 μ£Όμ–΄μ§€λŠ” λͺ…λ Ήμ˜ 수 N (1 ≀ N ≀ 2,000,000)이 주어진닀. λ‘˜μ§Έ 쀄뢀터 N개의 μ€„μ—λŠ” λͺ…령이 ν•˜λ‚˜μ”© 주어진닀. μ£Όμ–΄μ§€λŠ” μ •μˆ˜λŠ” 1보닀 ν¬κ±°λ‚˜ κ°™κ³ , 100,000보닀 μž‘κ±°λ‚˜ κ°™λ‹€. λ¬Έμ œμ— λ‚˜μ™€μžˆμ§€ μ•Šμ€ λͺ…령이 μ£Όμ–΄μ§€λŠ” κ²½μš°λŠ” μ—†λ‹€.

좜λ ₯

좜λ ₯ν•΄μ•Όν•˜λŠ” λͺ…령이 μ£Όμ–΄μ§ˆ λ•Œλ§ˆλ‹€, ν•œ 쀄에 ν•˜λ‚˜μ”© 좜λ ₯ν•œλ‹€.

예제 μ½”λ“œ

15
push 1
push 2
front
back
size
empty
pop
pop
pop
size
empty
pop
push 3
empty
front

예제 좜λ ₯

1
2
2
0
1
2
-1
0
1
-1
0
3

문제 풀이 CODE

from collections import deque
import sys

N=int(sys.stdin.readline())
queue=deque()

for i in range(N):
    a=sys.stdin.readline().split()
    if a[0]=="push":
        queue.append(a[1])
    if a[0]== "pop": 
        if queue!=deque():
            print(queue.popleft())
        else:
            print(-1)
    elif a[0]=="size":
        print(len(queue))
    elif a[0]=="empty":
        print(int(queue==deque([])))
    elif a[0]=="front": 
        if queue!=deque():
            print(queue[0])
        else:
            print(-1)
    elif a[0]=="back": 
        if queue!=deque():
            print(queue[-1])
        else:
            print(-1)
  • Queue의 기본적인 νŠΉμ„±μ„ ν’€μ΄ν•œ λ¬Έμ œμ˜€λ‹€.

λ©”λͺ¨λ¦¬μ™€ μ‹œκ°„μ΄ μ—„μ²­ 였래 κ±Έλ¦¬λŠ”λ° 이걸 ν•΄κ²°ν•˜λ €λ©΄ μ–΄λ–»κ²Œ ν•΄μ•Όν• κΉŒ...? ꢁ금...ν•˜λ‹€

λ©”λͺ¨λ¦¬ 175100KB . μ‹œκ°„ 1960ms
profile
Python을 ν™œμš©ν•œ ν”„λ‘œκ·Έλž˜λ°μ„ ν•˜κ³ μžˆμŠ΅λ‹ˆλ‹€! 데이터뢄석, 인곡지λŠ₯, Django에 κ΄€ν•œ 정보λ₯Ό μ—…λ‘œλ“œν•  μ˜ˆμ •μž…λ‹ˆλ‹€. μž˜λΆ€νƒλ“œλ¦½λ‹ˆλ‹€!!

0개의 λŒ“κΈ€