728x90
반응형
반응형
🙆♂️문제
🙋♂️풀이
🚀 입력받기
import sys
n = int(sys.stdin.readline())
com=[list(sys.stdin.readline().split()) for _ in range(n)]
시간 제한이 있기 때문에 빠른 입력인 sys.stdin.readline()을 통해서 입력을 받습니다.
이러면 엔터(\n)도 입력되는데 사실 상관이 없는게 엔터 입력된 부분을 접근하지 않아서 괜찮습니다.
🚀 문제 풀이 핵심 & 출력
queue=[]
for i in com:
lenQ = len(queue)
if i[0] == 'push':
queue.append(i[1])
elif i[0] == 'pop':
if lenQ == 0:
print(-1)
else:
print(queue[0])
queue.pop(0)
elif i[0] == 'size':
print(lenQ)
elif i[0] == 'empty':
if lenQ == 0:
print(1)
else:
print(0)
elif i[0] == 'front':
if lenQ == 0:
print(-1)
else:
print(queue[0])
elif i[0] == 'back':
if lenQ == 0:
print(-1)
else:
print(queue[-1])
먼저 queue라는 리스트를 선언하여 데이터들을 저장할 수 있도록 합니다.
그리고 입력받은 명령어들을 반복문으로 돌리고
lenQ라는 변수에 queue라는 길이를 저장하여 사용합니다.
if i[0] == 'push':
queue.append(i[1])
push라는 명령어가 들어오면 해당 입력된 값(i[1])을 queue 리스트에 추가합니다.
elif i[0] == 'pop':
if lenQ == 0:
print(-1)
else:
print(queue[0])
queue.pop(0)
pop 명령어가 들어오면 리스트의 길이가 0인지 확인하여 0이라면 -1을 출력하고
리스트의 길이가 0보다 크다면 가장 앞에 있는 queue[0]을 출력하고 pop를 통해 제거해줍니다.
elif i[0] == 'size':
print(lenQ)
정수의 개수는 리스트의 길이와 같기 때문에 lenQ를 출력합니다.
elif i[0] == 'empty':
if lenQ == 0:
print(1)
else:
print(0)
리스트의 길이가 0이라면 큐가 비어있는 것이기에 0이면 1을 출력하고 아니면 0을 출력합니다.
elif i[0] == 'front':
if lenQ == 0:
print(-1)
else:
print(queue[0])
리스트의 길이가 0인지 확인하고 0이라면 -1을 출력
아니면 가장 앞에 있는 0번째 인덱스를 출력합니다.
elif i[0] == 'back':
if lenQ == 0:
print(-1)
else:
print(queue[-1])
리스트의 길이가 0인지 확인하고 0이라면 -1을 출력
아니면 가장 뒤에 있는 -1번째 (이렇게 하면 리스트의 제일 뒤의 인덱스를 가리키게 됩니다.)를 출력합니다.
728x90
728x90
반응형
'코딩테스트 > 백준' 카테고리의 다른 글
[백준][Python] 4101. 크냐? (0) | 2022.08.24 |
---|---|
[백준][Python] 1158. 요세푸스 문제 (0) | 2022.08.24 |
[백준][Python] 2163. 초콜릿 자르기 (0) | 2022.08.23 |
[백준][Python] 3046. R2 (0) | 2022.08.23 |
[백준][Python] 1874. 스택 수열 (0) | 2022.08.23 |