Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- vercel
- CSS
- useState
- Next.js
- 코드스테이츠
- 스택
- UI
- 30daysdowoonchallenge
- 자바스크립트
- 큐
- javascript
- web
- mysemester
- Til
- 프로그래머스
- UX
- level1
- 백준
- 생활코딩
- 운영체제
- 카카오
- superstarjypnation
- 자료구조
- 프로토타입
- REST_API
- html
- redux
- 회고
- 해시테이블
- React
Archives
- Today
- Total
데굴데굴
[파이썬] 10845번: 큐 본문
10845번: 큐
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지
www.acmicpc.net
분명 맞게 푼 것 같았는데 답과는 다르게 출력돼서 뭐지..? 했는데 queue를 for문 내에 정의한 걸 디버깅하다가 깨달았다^^
그리고 pop을 수행할 때에도 리턴한 값을 출력하기 위해서 print()를 씌워줘야 한다.
비슷한 스택 문제를 풀어봤어서 비교적 수월하게 풀 수 있었다.
이 문제도 역시 n의 입력이 1부터 10000까지 주어지기 때문에 빠른 처리를 위해서 sys 모듈을 사용해야 한다.
n도 명령도 전부 sys로 입력받아야 한다!
코드
import sys
n = int(sys.stdin.readline())
queue = []
for i in range(n):
lst = sys.stdin.readline().split()
if lst[0] == 'push':
queue.append(int(lst[1]))
elif lst[0] == 'pop':
if len(queue) != 0:
print(queue.pop(0))
else:
print(-1)
elif lst[0] == 'size':
print(len(queue))
elif lst[0] == 'empty':
if len(queue) == 0:
print(1)
else:
print(0)
elif lst[0] == 'front':
if len(queue) == 0:
print(-1)
else:
print(queue[0])
elif lst[0] == 'back':
if len(queue) == 0:
print(-1)
else:
print(queue[-1])
'algorithm > 백준' 카테고리의 다른 글
[파이썬] 2231번: 분해합 (0) | 2022.07.05 |
---|---|
[파이썬] 17478번: 재귀함수가 뭔가요? (0) | 2022.07.01 |
[파이썬] 9012번: 괄호 (0) | 2022.06.16 |
[파이썬] 10828번: 스택 (0) | 2022.06.16 |
[파이썬] 10870번: 피보나치 수 5 (0) | 2022.06.14 |
Comments