파이썬 문제풀이/그리드

[백준 1789 파이썬] 수들의 합

ari0930 2024. 2. 8. 06:31

백준 1789 수들의 합

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

 

1789번: 수들의 합

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

www.acmicpc.net

 

문제

서로 다른 n개의 자연수의 합을 s라 할 때 자연수 n의 최댓값은 얼마인가 

(n개의 자연수의 합이 s 이다)

 

입력

첫째줄에 자연수 s가 주어진다

 

출력

n의 최댓값을 출력한다

 

풀이

n의 개수를 최대로 하기 위해서는 1부터 n의 값을 +1 하여 s에 근접하게 만들면 된다고 생각하였다

그래서 반복문을 사용하여 1부터 s보다 작거나 같을 때까지 더하여 s보다 커지면 현재 더한 값에서 -1 한 값을 출력한다

 

 

코드

s=int(input())
sum=0
i=1
while sum<=s:
    sum+=i
    if sum>s: #더했을때 s보다 커질경우 -1
        i-=1
        continue
    i+=1
print(i)
반응형