문제
서로 다른 N개의 자연수의 합이 S라고 한다. S를 알 때, 자연수 N의 최댓값은 얼마일까?
입력
첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다.
출력
첫째 줄에 자연수 N의 최댓값을 출력한다.
Solved.ac 레벨
실버 V
풀이
s = int(input())
hap = 0
i = 1
while 1:
if hap > s:
print(i-2)
break;
else:
hap += i
i += 1
1 + 2 + 3 + ... + n = S 일때 순서대로 더해가던 hap의 크기가 입력된 s보다 커질 경우, n보다 작아야 최댓값이 된다.
'Study (etc) > Problem Solving' 카테고리의 다른 글
[BOJ / Python] 1427번 : 소트인사이드 (0) | 2022.03.15 |
---|---|
[ BOJ / Python ] 1181번 : 단어 정렬 (0) | 2022.03.13 |
[BOJ / Python] 1158번 : 요세푸스 문제 (0) | 2022.03.04 |
[BOJ / Python] 2896번 : 무알콜 칵테일 (0) | 2022.03.04 |
[BOJ / Python] 1157번 : 단어공부 (0) | 2022.02.08 |