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함수를 사용하여 해당 문자가 들어올 때 처리를 하는 함수로 연결되는 로직을 작성하였습니다.
'Algorithm' 카테고리의 다른 글
[프로그래머스] 완주하지 못한 선수 파이썬 문제 풀이 (0) | 2022.03.15 |
---|---|
[백준] 1920번 수 찾기 파이썬 문제 풀이 (0) | 2022.03.06 |
[백준]9012번 괄호 문제 풀이 (0) | 2022.03.01 |
[정렬] 이코테 QuickSort - 퀵정렬 (0) | 2022.02.27 |