Notice
Recent Posts
Recent Comments
Link
코테 탈출일지
[백준] 10773번: 제로 - 파이썬/python 본문
https://www.acmicpc.net/problem/10773
10773번: 제로
첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경
www.acmicpc.net
접근 방식
- 스택(stack)과 push, pop 개념 구현 방법
코드 풀이
from collections import deque
n = int(input())
deq = deque()
for _ in range(n):
x = int(input())
if x == 0: # 0을 부르면
deq.pop() # 가장 최근 숫자 삭제
else:
deq.append(x)
print(sum(deq))
데트(deque)는 양방향 큐(queue)로써 스택(stack)의 구현까지 동시에 가능하기 때문에 코딩테스트에서 범용적으로 활용할 수 있습니다. 따라서 deque를 활용해 재현이가 부르는 숫자를 순서대로 append해줍니다. 이 때 0을 부르게 되면 가장 최근에 append한 맨 오른쪽의 숫자를 삭제합니다.
참고
deque.pop() # 맨 오른쪽 원소 가져와 삭제
deque.popleft() # 맨 왼쪽 원소 가져와 삭제
deque.remove(item) # item을 찾아 삭제
deque.append(item) # item을 오른쪽에 추가
deque.appendleft(item) # item을 왼쪽에 추가
'구현' 카테고리의 다른 글
[백준] 10866번: 덱 - 파이썬/python (0) | 2023.06.30 |
---|---|
[백준] 2941번: 크로아티아 알파벳 - 파이썬/python (0) | 2023.06.30 |
[백준] 4673번: 셀프 넘버 - 파이썬/python (0) | 2023.06.27 |
[백준] 1316번: 그룹 단어 체커 - 파이썬/python (0) | 2023.06.26 |
[백준] 2563번: 색종이 - 파이썬/python (0) | 2023.06.26 |