스택의 사용 사례:
ctrl + z
뒤로가기
Last In First Out.
First In Last Out. 대한민국 공군 공정통제사(CCT)의 모토.
내가 처음 작성한 코드.
def solution(n):
list_one = []
for x in range(n):
num = int(input())
if num != 0:
list_one.append(num)
else:
list_one.pop()
if x == (n-1):
final = sum(list_one)
break
return final
print(solution(n))
계속 "런타임 에러"가 떴다.
알고 봤더니, 입력의 첫줄은 정수 K의 입력인데, 그걸 빼 먹었다. 함수의 (n)이 입력 값 받는 것이라고 생각하고 있었는데, 따로 넣어줘야 했다.
import sys
list_one = []
one_input = int(sys.stdin.readline())
def solution(n):
for x in range(n):
num = int(sys.stdin.readline().strip())
if num != 0:
list_one.append(num)
else:
list_one.pop()
return sum(list_one)
print(solution(one_input))
이렇게 하니까 정답으로 떴다.
그러나 함수 없이 그냥 입력 값을 받을 때가 시간이 더 적었다.
from sys import stdin
num_list = []
a = int(stdin.readline())
for i in range(a):
num = int(stdin.readline())
if num != 0:
num_list.append(num)
else:
num_list.pop()
print(sum(num_list))
이건 팀원의 답이다.
아무래도 실행하는 코드 줄이 적어서 인 것 같다.
어떻게 하면 실행 시간이 적어지는 아직 알기가 어렵다. 웬지 결국엔 C를 배워야 할 것 같다. 파이썬으로 실행시간을 줄이려고 하는 것은 안개속을 걷는 것 같다.
'스파르타코딩 내일배움캠프' 카테고리의 다른 글
내일배움캠프 - Day 40 - 매컴싸 1일차 (0) | 2021.10.22 |
---|---|
내일배움캠프 - 매컴싸! - Domain Name Service (DNS) (0) | 2021.10.22 |
내일배움캠프 - TIL 39 - IP주소. IPv4 vs. IPv6 (0) | 2021.10.21 |
내일배움캠프 - TIL 38 - 2차 프로젝트 회고 (2) | 2021.10.20 |
내일배움캠프 - WIL 5 (0) | 2021.10.20 |