반응형
[문제 출처]
https://www.acmicpc.net/problem/18258
[소스 코드]
함수 밖에서 전역 변수를 선언하고 함수에서 참조할 경우,
함수 밖에서 global을 사용해 선언해준 후에 함수 내에서 다시 한번 더 선언해주어야 한다.
리스트를 이용해 큐를 구현하기 위해, 앞을 나타내는 front와 맨 뒤+1을 나타내는 rear 변수를 사용해주었다.
전역 변수로 선언했으며, pop 할 때마다 front를 증가시켜 맨 앞 원소를 제거한 효과를 주었고,
push를 할 때마다 rear를 증가시켜서 큐의 사이즈를 확인할 수 있게 하였다.
#18258
import sys
input = sys.stdin.readline
q = []
global front
global rear
front = 0
rear = 0
def comm():
global front
global rear
c = list(input().split())
if c[0]=='push':
q.append(c[1])
rear += 1
elif c[0]=='pop':
if front == rear:
print(-1)
else:
front += 1
print(q[front-1])
elif c[0]=='size':
print(rear-front)
elif c[0]=='empty':
if front==rear:
print(1)
else:
print(0)
elif c[0]=='front':
if front==rear:
print(-1)
else:
print(q[front])
elif c[0]=='back':
if front==rear:
print(-1)
else:
print(q[rear-1])
n = int(input())
for i in range(n):
comm()
반응형
'알고리즘 > python' 카테고리의 다른 글
[python/파이썬] 백준 1021 회전하는 큐 (0) | 2022.12.21 |
---|---|
[python/파이썬] 백준 11866 요세푸스 문제 0 (0) | 2022.12.20 |
[python/파이썬] 백준 10773 제로 (0) | 2022.12.15 |
[python/파이썬] 백준 10828 스택 (0) | 2022.12.14 |
[python/파이썬] 백준 15650 N과 M (2) (0) | 2022.12.01 |