본문 바로가기
Study (etc)/Problem Solving

[BOJ / Python ] 1789번 : 수들의 합

by Haren 2022. 3. 11.

문제

서로 다른 N개의 자연수의 합이 S라고 한다. S를 알 때, 자연수 N의 최댓값은 얼마일까?

입력

첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다.

출력

첫째 줄에 자연수 N의 최댓값을 출력한다.

 

Solved.ac 레벨

실버 V

 

풀이

s = int(input())
hap = 0
i = 1

while 1:
    if hap > s:
        print(i-2) 
        break;
    else:
        hap += i
        i += 1

1 + 2 + 3 + ... + n = S 일때 순서대로 더해가던 hap의 크기가 입력된 s보다 커질 경우, n보다 작아야 최댓값이 된다.

https://www.acmicpc.net/problem/1789