Algorithm/Python

[백준알고리즘] 1798번 수들의 합 (Python)

yujin.me 2021. 7. 10. 17:24

문제

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

입력

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

출력

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

코드

S = int(input()) # 최대값

N = 1 # 자연수 n
sum = 0 # 합계
while True :
    sum += N
    if sum > S :
        print(N-1) # 합계가 더 클 경우 N에서 1을 뺀 값 출력
        break
    elif sum == S : # 합계와 S의 값이 같으면 N 그대로 출력
        print(N)
        break
    N += 1 # 조건에 만족하지 않을 때 1씩 더하기

출처

반응형