티스토리 뷰

728x90

문제

www.acmicpc.net/problem/1789

 

1789번: 수들의 합

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

www.acmicpc.net

 

풀이 및 소스코드

서로다른 자연수 N개의 합이 S일 때,

N의 최댓값을 구하는 문제이다.

N의 최댓값을 구하기 위해서는 1부터 N까지 더하되, 합계가 S와 같으면 그냥 출력, S보다 커지면 N-1출력 해주면 된다.

n = int(input())
pos = 1
res = 0
while True:
    res += pos
    if res > n:
        print(pos-1)
        break
    elif res == n:
        print(pos)
        break
    pos += 1
반응형