알고리즘(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가 걸린다는,, 🥲

 

화이팅 💪