친절하게 힌트까지 있는 문제이다.
일단 문제는 굉장히 간단한데 문제는 백준의 시간 초과이다.
이전에 올린 문제 (https://gettingtoknowit.tistory.com/99)와 같이 sys를 사용해야 시간 초과가 걸리지 않는다.
[백준] 10828_스택 파이썬
우선 간단히 스택 구조에 대해서 정리해보자면, 스택(stack)은 LIFO(Last In First Out) 구조이다. 즉, 가장 최근에 스택에 추가한 항목이 가장 먼저 나오는 항목이 된다. 아마 C/C++로 했으면 코드가 길어
gettingtoknowit.tistory.com
코드는 다음과 같이 하면 되지만,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
import sys
k = int(sys.stdin.readline())
num_list = []
for _ in range(k):
num = int(sys.stdin.readline())
if num != 0:
num_list.append(num)
else:
num_list.pop()
total = 0
for i in num_list:
total += i
print(total)
|
cs |
위의 코드를 sum으로 더 간단하게 만드는 것 또한 가능하다.
1
2
3
4
5
6
7
8
9
|
import sys
k = int(sys.stdin.readline()) num_list = [] for _ in range(k): num = int(sys.stdin.readline()) if num != 0: num_list.append(num) else: num_list.pop() print(sum(num_list))
|
cs |
문제 출처: https://www.acmicpc.net/problem/10773
10773번: 제로
첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경
www.acmicpc.net
'코딩 문제풀이 및 연습 > Python 연습' 카테고리의 다른 글
[백준] 1100_하얀 칸 (0) | 2021.08.30 |
---|---|
★파이썬 실행시간 나타나게 하는 방법★ (0) | 2021.08.25 |
[백준] 10828_스택 파이썬 (0) | 2021.08.25 |
[백준] 10814_나이순 정렬 파이썬 (0) | 2021.08.25 |
파이썬 입문자는 꼭 알아야 하는 사이트: 파이썬 튜터 (0) | 2021.08.16 |