규도자 개발 블로그
[해커랭크(Hackerrank)/Problem Solving/파이썬3(python3)] A Very Big Sum 본문
[해커랭크(Hackerrank)/Problem Solving/파이썬3(python3)] A Very Big Sum
규도자 (gyudoza) 2019. 3. 9. 15:10Calculate and print the sum of the elements in an array, keeping in mind that some of those integers may be quite large.
Function Description
Complete the aVeryBigSum function in the editor below. It must return the sum of all array elements.
aVeryBigSum has the following parameter(s):
- ar: an array of integers .
Input Format
The first line of the input consists of an integer .
The next line contains space-separated integers contained in the array.
Output Format
Print the integer sum of the elements in the array.
Constraints
Sample Input
5
1000000001 1000000002 1000000003 1000000004 1000000005
Output
5000000015
Note:
The range of the 32-bit integer is .
When we add several integer values, the resulting sum might exceed the above range. You might need to use long long int in C/C++ or long data type in Java to store such sums.
풀이
#!/bin/python3
import math
import os
import random
import re
import sys
# Complete the aVeryBigSum function below.
def aVeryBigSum(ar):
return sum(ar)
if __name__ == '__main__':
fptr = open(os.environ['OUTPUT_PATH'], 'w')
ar_count = int(input())
ar = list(map(int, input().rstrip().split()))
result = aVeryBigSum(ar)
fptr.write(str(result) + '\n')
fptr.close()
설명
정수형 배열을 받아 요소를 모두 더해 반환하는 문제이다. 간단하게 파이썬 내장함수로 해결하였다. 기존 4byte의 정수형 자료형을 사용하는 언어에서는 터질 수 있으니 double로 받아 소수점 이하 값들을 제거하는 방향으로 구현하거나 64bit운영체제에서는 long형으로 받으면 될 것이다. 이 문제에서 나올 수 있는 최대값은 10개의 배열에 담긴 각 10,000,000,000(100억)이라는 숫자의 10배, 1000억의 숫자를 받을 수 있어야 한다.