Programming/Python

[백준] 10773 | 제로

왕밤빵도라에몽 2024. 12. 11. 19:13
728x90

2년 전 코드

from collections import deque
import sys
input = sys.stdin.readline

k = int(input())
stack = deque([])
for _ in range(k):
    tmp = int(input())
    if tmp != 0:
        stack.append(tmp)
    else:
        stack.pop()
print(sum(stack))

  • (good) 대체적으로 괜찮음!

개선 코드

from collections import deque
import sys
input = sys.stdin.readline

if __name__ == "__main__":
    k = int(input())
    stack = deque([])
    for _ in range(k):
        n = int(input())
        if n == 0:
            stack.pop()
        else:
            stack.append(n)

    sys.stdout.write(str(sum(stack)) + "\n")

  • (good) 직접 실행 파일인거 드러내 주는게 더 좋고
  • (good) stdout 써서 출력 속도 개선

 

배운점 / 다시 상기한 점

  • sum()은 C기반이라 while루프 + pop 조합 보다 훨씬 빠름, stack도 보존할 수 있음
  • 출력 속도 개선하는게 차이가 꽤 큼
728x90