정구리의 우주정복
[BOJ] 백준 18258번 - 큐 2 파이썬 (dequeue 없이 풀기) 본문
반응형
https://www.acmicpc.net/problem/18258
시간 제한이 있어서 아마 많은 분들이 시간초과로 인해서 못 풀었을 수 있을것 같다
나도 처음에 시간초과 걸리고 아주 놀랐다구 !
힌트 (해설을 보기 전 먼저 풀어보셔요)
- pop 부분에서 굳이 list 의 것을 제거하려 하지말고 맨 가리키고 있는 부분을 +1씩 해줘보기
ex) queue = [1,2,3,4,5]
처음엔 [0] 을 가르키고 pop 을 하면
[1] 을 가르키고 또 pop 을 하면
[2] 를 가르키게 끔 !
<해설코드>
import sys
input = sys.stdin.readline
testCase = int(input())
queue = []
cnt = 0
for i in range(testCase):
comm = input().strip()
if comm.split()[0] =='push':
queue.append(int(comm.split()[1]))
elif comm.split()[0]=='pop':
if len(queue)-cnt ==0:
print(-1)
else:
print(queue[cnt])
cnt += 1
elif comm.split()[0]=='size':
print(len(queue)-cnt)
elif comm.split()[0] =='empty':
if len(queue)-cnt ==0:
print(1)
else:
print(0)
elif comm.split()[0]=='front':
if len(queue)-cnt ==0:
print(-1)
else:
print(queue[cnt])
elif comm.split()[0]=='back':
if len(queue)-cnt==0:
print(-1)
else:
print(queue[-1])
cnt =0 이라는 변수를 만들어서 cnt가 현재 가르키고 있는 부분을 의미해줬다 ! pop 할때마다 +1 씩 해주었음
가르키는것 뿐 아니라 len(queue) 부분도 신경써주자 !
해결 !
반응형
'ALGORITHM > SOLVE' 카테고리의 다른 글
[Code Up] 코드업 파이썬 1101 - 1113 풀이 (0) | 2020.08.27 |
---|---|
[BOJ] 2164번 - 카드 2 파이썬 (collection.deque) (0) | 2020.07.24 |
[BOJ] 백준 10872번 - 팩토리얼 파이썬 (0) | 2020.06.30 |
[BOJ] 백준 4949번 - 균형잡힌 세상 파이썬 (0) | 2020.06.28 |
[BOJ] 백준 9012번 - 괄호 파이썬 (0) | 2020.06.28 |
Comments