BOJ - 1789번 수들의 합 (Python)

woga·2020년 10월 13일
0

BOJ

목록 보기
50/83
post-thumbnail
post-custom-banner

문제 출처: 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

ETC

파이썬 3은 놀랍게도 놀랍게도!!!! 오버플로우가 없다. 난 당연히 S 범위를 보고 long long 데이터 형을 떠올려서 쓰려고 하는데 IDE에 long 형이 없어 검색해서 알았다.

이유는

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

라는 놀라운 문장.. 대박이다..

profile
와니와니와니와니 당근당근
post-custom-banner

0개의 댓글