반응형
문제
두 정수 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에서는 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))
반응형
'코딩테스트 > 알고리즘 문제풀이' 카테고리의 다른 글
[파이썬] 11653 : 소인수분해 (0) | 2021.07.17 |
---|---|
[파이썬] 2581: 소수 (0) | 2021.07.16 |
[파이썬] 1193 : 분수찾기 (0) | 2021.07.13 |
[파이썬] 1978 : 소수 찾기 (0) | 2021.02.25 |
[파이썬] 1011 : Fly me to the Alpha Centauri (0) | 2021.02.24 |
댓글