일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- dfs
- webpack
- 이분 검색
- 타입 좁히기
- ESlint
- RTK Query
- autosize
- Cypress
- 공변성
- 인터섹션
- tailwind
- app router
- 반공변성
- 결정 알고리즘
- CORS
- React
- CI/CD
- Jest
- recoil
- SSR
- async/await
- 호이스팅
- TS
- 무한 스크롤
- useAppDispatch
- 태그된 유니온
- 투포인터
- Promise
- 리터럴 타입
- map
Archives
- Today
- Total
짧은코딩
10845 큐 본문
반응형
https://www.acmicpc.net/problem/10845
10845번: 큐
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지
www.acmicpc.net
내 풀이(맞음)
from collections import deque
class Queue:
def __init__(self, ary = deque()):
self.ary = ary
def push(self, ary, item):
ary.appendleft(item)
def pop(self, ary):
if ary:
t = ary.pop()
return t
else:
return -1
def size(self, ary):
return len(ary)
def empty(self, ary):
if len(ary) == 0:
return 1
else:
return 0
def front(self, ary):
if ary:
return ary[len(ary)-1]
else:
return -1
def back(self, ary):
if ary:
return ary[0]
else:
return -1
n = int(input())
a = deque()
q = Queue(a)
rst = []
for i in range(n):
x = input().split()
if x[0] == 'push':
q.push(a, x[1])
elif x[0] == 'pop':
rst.append(q.pop(a))
elif x[0] == 'size':
rst.append(q.size(a))
elif x[0] == 'empty':
rst.append(q.empty(a))
elif x[0] == 'front':
rst.append(q.front(a))
elif x[0] == 'back':
rst.append(q.back(a))
for i in rst:
print(i)
init에서 ary를 덱으로 생성합니다. 그리고 큐는 선입선출이라 push에서 왼쪽에 추가합니다. 그리고 pop에서 오른쪽부터 삭제합니다. size는 len으로 구하고 empty는 있으면 1 비었으면 0을 출력합니다. front는 맨 오른쪽 값, back는 맨 왼쪽 값을 출력합니다.
반응형
'코딩 테스트(Python) > 백준, 프로그래머스' 카테고리의 다른 글
9012 괄호 (0) | 2022.02.08 |
---|---|
10866 덱 (0) | 2022.02.07 |
10828 스택 (0) | 2022.02.05 |
16435 스네이크버드 (0) | 2022.02.04 |
1744 수 묶기 (0) | 2022.02.03 |
Comments