문제
서로 다른 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 |