programmers 코테 고득점 kit - (분야) - (문제 이름)
서로 다른 N개의 자연수의 합이 S라고 한다. S를 알 때, 자연수 N의 최댓값은 얼마일까?
ex) s : 200 N의 최대값: 1,2,3,4,5...,17,18,29(19개)
문제에서 주어진 자연수 S의 값의 범위가 매우커서 S의 값이 작을 때부터 커지면서 규칙성 같은 게 있는지 찾으려했다. S가 1부터 9까지의 N의 최대값의 경우의 수를 계산해보니 1~n까지의 합을 넘어가지 않는 수들의 합 + @ 이 최대 개수의 경우라는 결론을 내렸다.
코드는 다음과 같다.
n = int(input())
i = 1
while n >= (i * (i + 1)) // 2:
i += 1
print(i - 1)