규도자 개발 블로그

[해커랭크(Hackerrank)/Problem Solving/파이썬3(python3)] A Very Big Sum 본문

알고리즘/풀이

[해커랭크(Hackerrank)/Problem Solving/파이썬3(python3)] A Very Big Sum

규도자 (gyudoza) 2019. 3. 9. 15:10

Calculate 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억의 숫자를 받을 수 있어야 한다.

Comments