boj 18258 큐2

apircity·2022년 8월 21일
0

boj

목록 보기
20/24
post-thumbnail

boj 18258 큐2

how to solve

다음 명령 6가지의 조건을 판별하여 수행하는 알고리즘을 구성한다

  • push X: 정수 X를 큐에 넣는 연산이다.
  • pop: 큐에서 가장 앞에 있는 정수를 빼고, 그 수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.
  • size: 큐에 들어있는 정수의 개수를 출력한다.
  • empty: 큐가 비어있으면 1, 아니면 0을 출력한다.
  • front: 큐의 가장 앞에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.
  • back: 큐의 가장 뒤에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.

CODE

import sys
from collections import deque
queue = deque()
N = int(sys.stdin.readline())
for _ in range(N) :
    i = sys.stdin.readline().split()
    
    if i[0] == 'push' :
        queue.append(int(i[1]))
    
    elif i[0] == 'pop' :
        if not queue :
            print (-1)
        else :
            print(queue[0])
            queue.popleft()
    
    elif i[0] == 'size' :
        print(len(queue))
    
    elif i[0] == 'empty' :
        if len(queue) == 0 :
            print(1)
        else :
            print(0)
    
    elif i[0] == 'front' :
        if not queue:
            print(-1)
        else :
            print(queue[0])
    
    elif i[0] == 'back' :
        if not queue :
            print(-1)
        else :
            print(queue[-1])

소감

나름 열심히 짜봤는 데 실행은 되지만 큐를 공부할때 여러 사람의 코드를 봐서 그런지 난잡한 느낌도 든다
각각의 조건 중에서 공통점이 있다면 이를 공통기준으로 잡고 판별했다면 코드의 실행속도를 조금이나마 줄일 수 있지 않았을까라는 생각과 함께 앞으로 코드를 짤때는 정확도뿐만 아니라 실행 속도 또한 고려 대상으로 삼을 수 있도록 노력해야겠다

profile
junior developer

0개의 댓글