https://www.acmicpc.net/problem/1789
import sys
input = sys.stdin.readline
#S(1 ≤ S ≤ 4,294,967,295)
s = int(input())
# 1~n 까지의 합 n*(n+1) //2 를 이용
answer = 0
for i in range(int((2*s)**0.5), 1, -1):
sum_i = i*(i+1)//2
if s - sum_i > i:
answer = i
break
# 1~i까지의 합 + i보다 큰 수 한개를 더한값이 s일 때 N이 최대
print(answer+1)
입력 3
출력 1
답 2
import sys
input = sys.stdin.readline
s = int(input())
i = int((2*s)**0.5)
a = s - (i * (i+1)//2)
while a<i:
if i * (i+1) > s:
i-=1
a = s - (i * (i+1))//2
print(i+1)
입력 5
출력 3
답 2
import sys
input = sys.stdin.readline
s = int(input())
i = int((2*s)**0.5)
a = s - (i * (i+1)//2)
while a<i:
if i * (i+1) > s:
i-=1
a = s - (i * (i+1))//2
if i==a:
print(i)
else:
print(i+1)