Algorithm/Baekjoon

[Algorithm] 백준 1789번 수들의 합 (Python)

meizzi 2023. 3. 2. 15:23
728x90
반응형

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

 

1789번: 수들의 합

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

www.acmicpc.net

문제

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

입력

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

출력

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

예제 입력 1

200

예제 출력 1

19

풀이

설명

  • n(n+1)/2은 1부터 n까지의 합을 계산해 준다.
  • 위의 값이 N보다 작거나 같을 때까지 while문을 돌며 n값을 1씩 증가시킨다.
  • n이 1부터 시작하므로 출력할 때 n에서 1을 감소하여 출력한다.

코드

N = int(input())
n = 1

while N >= n*(n+1)/2:
    n += 1

print(n-1)
728x90
반응형