🔍문제
시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
2 초 | 128 MB | 31044 | 12562 | 10720 | 42.326% |
문제
서로 다른 N개의 자연수의 합이 S라고 한다. S를 알 때, 자연수 N의 최댓값은 얼마일까?
입력
첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다.
출력
첫째 줄에 자연수 N의 최댓값을 출력한다.
예제 입력 1 복사
1
200
예제 출력 1 복사
1
19
📝내 풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
S = int(input())
sum = 0
i = 1
while True:
sum += i
if sum > S:
print(i-1)
break
elif sum == S:
print(i)
break
i += 1
서로 다른 자연수의 최대 개수를 구하려면 최대한 작은 숫자인 1부터 1씩 더해 가면 될 것이다. 1씩 누적 덧셈을 하다가 목표 값이 초과되는 시점에 현재까지 더한 자연수의 개수에서 -1 을 하면 그 값이 곧 자연수의 최대 개수가 된다.
댓글남기기