[python] 백준 10733번 제로

이세령·2023년 5월 21일
0

알고리즘

목록 보기
7/43

문제

https://www.acmicpc.net/problem/10773

풀이과정

입력받은 정수가 0일때 가장 최근에 쓴 수를 지운다.
즉, 스택을 이용해서 pop을 해준다.

첫 코드

k = int(input())
stack = []

for i in range(k):
    stack.append(int(input()))
    if stack[-1] == 0:
        stack.pop()  # 0 을 빼고
        stack.pop()  # 최근것 빼기
print(sum(stack))

입력받은 것을 바로 붙여줬는데 낭비인 것 같아서 아래 코드로 고쳐주었다.

k = int(input())
stack = []

for i in range(k):
    n = int(input())
    if n == 0:
        stack.pop()
    else:
        stack.append(n)

print(sum(stack))

둘 다 정답이지만 메모리 사용률은 같고 시간은 아래 것이 효율이 더 좋았다.

profile
https://github.com/Hediar?tab=repositories

0개의 댓글