Algorithm / / 2022. 3. 1. 21:58

[백준] 10845번 큐 파이썬 문제풀이

 

from collections import deque
import sys

que = deque()
def push(X):
  que.append(X)
def pop():
  if len(que) == 0:
    return -1
  return que.popleft()
def size():
  return len(que)
def empty():
  if len(que) == 0:
    return 1
  return 0
def front():
  if len(que) == 0:
    return -1
  return que[0]
def back():
  if len(que) == 0:
    return -1
  return que[-1]

result = []
N = int(sys.stdin.readline().rstrip())
for _ in range(N):
  tmp = sys.stdin.readline().rstrip()

  if tmp.find('push') >= 0:
    command, num = tmp.split()
    push(int(num))
  elif tmp.find('pop') >= 0:
    result.append(pop())
  elif tmp.find('size') >= 0:
    result.append(size())
  elif tmp.find('empty') >= 0:
    result.append(empty())
  elif tmp.find('front') >= 0:
    result.append(front())
  elif tmp.find('back') >= 0:
    result.append(back())
for i in result:
  print(i)

이 문제의 포인트로는

파이썬의 find 함수를 사용하였습니다.

find를 사용할 경우 해당 문자열이 없으면 -1을 return하고

문자열이 있다면 맨 처음 찾은 문자의 index를 반환하기 때문에 0이상일 경우 if문을 통과합니다.

간단한 구현 문제지만

find함수를 사용하여 해당 문자가 들어올 때 처리를 하는 함수로 연결되는 로직을 작성하였습니다. 

 

  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유