알고리즘(algo)/백준
[백준] 15596번 - 정수 N개의 합
dDong2
2023. 1. 19. 11:58
참고: https://www.acmicpc.net/problem/15596
✔️ 문제
문제는 다음과 같다.
✔️ 풀이
파이썬으로 문제를 풀 것이기 때문에
해당 solve 함수를 작성해주면 된다.
근데 여기서 실수했던 부분들이 있다.
import sys
n=list(map(int,sys.stdin.readline().split()))
def solve(a: list) -> int:
result=sum(a)
return print(result)
solve(n)
이런식으로 코드를 적었더니
다음과 같은 런타임 에러가 발생하는 것이었다.
그래서 추측해봤을 때 예제가 없네..?
그래서 solve() 및 print 구문을 지워주었더니
잘 동작하는 것을 확인했다.
근데 시간이 너무 길다.. 시간을 단축해보자.
1. solve만 작성해보았다.
def solve(a):
ans = 0
for i in range(len(a)):
ans += a[i]
return ans
188ms -> 168ms로 20ms 가량 줄었다.
더 단축해보자.
2. 맨 처음에 생각한 sum 함수를 사용하자.
def solve(a):
ans = 0
ans = sum(a)
return ans
168ms -> 52ms로 116ms 가량 줄었다.
ans를 안쓸수 있다면..?
3. ans 버리고 숏코딩하자.
def solve(a):
return sum(a)
최종적으로 시간은 188ms -> 40ms로 148ms 가량 단축했고,
코드 길이는 145B -> 32B로 113B 가량 단축했다.
결론은 문제를 잘 확인하자..^^@!
참고로 해당 똑같은 코드를 PyPy3 언어로 돌리면
맞힌 사람에 있는 코드 시간처럼 4ms가 걸린다는,, 🥲
화이팅 💪