문제 출처: https://www.acmicpc.net/problem/1789
Silver 5
서로 다른 N개의 수라고 해서 헷갈릴 수 있는데 그냥 1~N개 더해서 만들어지는 S합을 구하는 것이다 여기서 가장 큰 수면 당연히 N
S = int(input())
sum = 0
for count in range(1, 4294967295):
sum += count
if sum > S:
print(count-1)
break
파이썬 3은 놀랍게도 놀랍게도!!!! 오버플로우가 없다. 난 당연히 S 범위를 보고 long long 데이터 형을 떠올려서 쓰려고 하는데 IDE에 long 형이 없어 검색해서 알았다.
이유는
파이썬 3에서는 long 타입이 없어지고 int 타입만 남았는데, 이 int가 arbitrary precision을 지원하여 오버플로우가 발생하지 않게 되었다
라는 놀라운 문장.. 대박이다..