코딩테스트/알고리즘 문제풀이

[파이썬] 10757 : 큰 수 A+B

지과쌤 2021. 7. 13.
반응형

문제

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 A와 B가 주어진다. (0 < A,B < 1010000)

출력

첫째 줄에 A+B를 출력한다.

예제 입력 1 복사

9223372036854775807 9223372036854775808

예제 출력 1 복사

18446744073709551615

 


일반적인 int의 범위이다

 

-9223372036854775808 ~ 9223372036854775807 (-sys.maxsize-1 ~ sys.maxsize)

 

다른 언어에서는 위 범위를 넘어서면 메모리가 터지지만, 파이썬3은 오버플로우가 없기때문에 터지지 않는다...

https://ahracho.github.io/posts/python/2017-05-09-python-integer-overflow/

 

[기초 파이썬] 파이썬 3에는 오버플로우가 없다?

오버플로우(Overflow)란? 지난 포스팅에서도 설명하였듯이 C언어에서 변수 혹은 상수의 값은 메모리에 직접 저장이 된다. 예를 들어, 아래와 같이 int 변수 a에 5라는 값을 대입하면, 컴퓨터는 알아

ahracho.github.io

 

간단하게 정리하면, 

 

파이썬3에서는 long타입이 없어지고 int 타입만 남았는데, 이 int가 arbitrary precision을 지원하여 오버플로우가 발생하지 않게 되었다.

 

arbitrary precision은 사용할 수 있는 메모리양이 정해져 있는 기존의 fixed-precision과 달리, 현재 남아있는 만큼의 가용 메모리를 모두 수 표현에 끌어다 쓸 수 있는 형태이다.

예를들어, 특정 값을 나타내는데 4바이트가 부족하다면 5바이트, 더 부족하면 6바이트까지 사용할 수 있게 유동적으로 운용한다는것이다.

 

갓갓파이썬

 


def solve(a, b):
    return a+b

if __name__ == "__main__":
    a, b = map(int,input().split())
    print(solve(a, b))
반응형

댓글

💲 추천 글