Posts [알고리즘] 백준 18258 - 큐 2
Post
Cancel

[알고리즘] 백준 18258 - 큐 2


문제

18258 - 큐 2


접근

큐를 사용하는 문제이다.

파이썬에서 split(‘ ‘) 와 split()의 차이를 명확히 깨닳은 문제이다.

예를 들어, ‘ a b ‘ 가 있을 때

split(‘ ‘)를 해주면 [’’, ‘a’, ‘b’, ‘’] 이렇게 나온다.

’ ‘ 공백을 기준으로 나누다 보니, a 앞과 b 뒤에 공백도 분리의 기준으로 들어가는 듯 하다.

그래서 a 앞 공백 앞에 있는 빈문자 ‘‘를 결과로 담아 주는 듯..

반면 split()을 해주면 [‘a’, ‘b’]로 나온다.


코드

  • 파이썬 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
from collections import deque
import sys

input = sys.stdin.readline

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

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


This post is licensed under CC BY 4.0 by the author.