한 걸음씩
[백준][python] 10773 제로 본문
https://www.acmicpc.net/problem/10773
10773번: 제로
첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경
www.acmicpc.net
풀이 과정
1. 첫 번째 줄에 테스트케이스 값을 for문 range로 바로 입력받고
2. 테스트 케이스 개수만큼 정수를 입력받고 new_num 변수 리스트에 append 한다
3. new_num리스트를 for문 돌리고
4. 조건문을 통해 i의 값이 0이 아니라면 stack변수에 append 하고
📗 변수명. append(항목) => 리스트 마지막에 항목을 추가해 줌
5. 아니라면 pop (4번에서 1을 추가했을 경우(리스트 내에 1만 있을 경우) 다음에 pop()이 나오면 1을 삭제해 준다는 말)
📗 변수명. pop() => 마지막 항목을 삭제하고 돌려줌
📗 변수명. pop(1) => 리스트에서 1번째 항목을 삭제하고 돌려줌
6. 합을 출력하라고 했으니까 sum함수를 사용한다
new_num = []
for i in range(int(input())):
num = int(input())
new_num.append(num)
stack = []
for i in new_num:
if i != 0:
stack.append(i)
else:
stack.pop()
print(sum(stack))
리뷰
자료구조 stack을 배우고 적용해 본 문제인데 문제 풀 때 pop을 사용해보지 않아서 좀 헷갈렸지만 이해했다
'BOJ' 카테고리의 다른 글
[백준][python] 1269 대칭 차집합 (0) | 2023.01.27 |
---|---|
[백준][python] 2161 카드1 ✅ (0) | 2023.01.27 |
[백준][python] 9012 괄호 ✅ (0) | 2023.01.26 |
[백준][python] 1453 피시방 알바 (0) | 2023.01.26 |
[백준][python] 2720 세탁소 사장 동혁 ✅ (0) | 2023.01.26 |