참고: 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가 걸린다는,, 🥲
화이팅 💪
'알고리즘(algo) > 백준' 카테고리의 다른 글
[백준] 2577번 - 숫자의 개수 (0) | 2023.01.20 |
---|---|
[백준] 1065번 - 한수 (0) | 2023.01.20 |
[백준] 1546번 - 평균 (0) | 2023.01.18 |
[백준] 3052번 - 나머지(중복 제거) (0) | 2023.01.18 |
[백준] 25304번 - 영수증 (0) | 2023.01.17 |