백준[파이썬]

[백준/Python] - 18258번 큐 2

코린이 파닥거리기 2025. 4. 6. 22:42
728x90
반응형
SMALL

https://www.acmicpc.net/problem/18258

 

 

제출코드

    import sys
    from collections  import deque

    input = sys.stdin.readline
    N = int(input())
    queue = deque([])
    for _ in range(N):
        questr = str(input().rstrip())
        if "push" in questr:
            queue.append(questr[5:])
        elif questr == 'pop':
            if queue:
                num = queue.popleft()
                print(num)
            else:
                print(-1)
        elif questr =='size':
            print(len(queue))
        elif questr == 'empty':
            if queue:
                print(0)
            else:
                print(1)
        elif questr == 'front':
            if queue:
                print(queue[0])
            else:
                print(-1)
        elif questr == 'back':
            if queue:
                print(queue[-1])
            else:
                print(-1)

 

접근방법 및 풀이

이 문제는 collections의 라이브러리 deque를 임포트해서 풀었다.

그리고 접근자체는 크게 어려운게 없었다. 일단 입력값 받고 조건에 따라서 작성해나가기만 하면된다.

큐를 string으로 입력받고 rstrip()함수readline의 고질병 개행'/n'을 없애준다.

  • push X: 정수 X를 큐에 넣는 연산이다.
if "push" in questr:
        queue.append(questr[5:])
    elif questr == 'pop':
        if queue:
            num = queue.popleft()
            print(num)
        else:
            print(-1)
  • pop: 큐에서 가장 앞에 있는 정수를 빼고, 그 수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.
elif questr == 'pop':
        if queue:
            num = queue.popleft()
            print(num)
        else:
            print(-1)

 

  • size: 큐에 들어있는 정수의 개수를 출력한다.
    elif questr =='size':
        print(len(queue))
  • empty: 큐가 비어있으면 1, 아니면 0을 출력한다.
    elif questr == 'empty':
        if queue:
            print(0)
        else:
            print(1)
  • front: 큐의 가장 앞에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.
    elif questr == 'front':
        if queue:
            print(queue[0])
        else:
            print(-1)
  • back: 큐의 가장 뒤에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.
    elif questr == 'back':
        if queue:
            print(queue[-1])
        else:
            print(-1)

 

728x90
반응형
LIST