728x90

문제

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

입력

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

출력

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

코드

s = int(input())
n = 1
while n*(n+1)/2<=s:
    n+=1
print(n-1)

풀이

1부터 n까지의 합 공식 : n*(n+1)/2

최대값을 구해야 하니, 1부터 차례대로 더해줘서 s보다 커질 때 -1 해주면 된다.

 

'알고리즘 문제 풀이 > 백준' 카테고리의 다른 글

[백준] 1439 뒤집기 python  (0) 2022.02.10
[백준] 1946 신입사원 python  (0) 2022.02.10
[백준] 13305 주유소 python  (0) 2022.02.09
[백준] 10610 30 python  (0) 2022.02.09
[백준] 2217 로프 python  (0) 2022.02.08

+ Recent posts