728x90
반응형
https://www.acmicpc.net/problem/1789
1789번: 수들의 합
첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다.
www.acmicpc.net
문제 해결
- 주어진 S를 1, 2, 3 ... 작은 자연수부터 차례대로 계속 뺀다. S가 음수가 되기 전까지!
- S에서 더이상 빼면 음수가 될 때 바로 전에 뺀 수를 출력하면 된다. ex) 200의 수를 1부터 빼면 19까지 빼면 10이 남고 20을 빼면 음수가 되므로 19를 출력하면 된다. 이는 18까지 뺀 다음 29를 빼야 200이 되는데 서로다른 N개의 자연수의 합이 200이 될 때 N의 최댓값이 19라는 것이다.
CODE
import sys
input = sys.stdin.readline
s = int(input())
tmp = 1
while True:
if s-tmp <0:
break
s -= tmp
tmp += 1
print(tmp-1)
728x90
반응형
'알고리즘 > [python] 백준 BOJ' 카테고리의 다른 글
[python] 백준 16964 DFS 스페셜 저지 (0) | 2023.01.27 |
---|---|
[python] 백준 16940 BFS 스페셜 저지 (0) | 2023.01.25 |
[Python] 백준 16947 서울 지하철 2호선 (0) | 2023.01.24 |
[python] 백준 16929 Two Dots (0) | 2023.01.23 |
[Python] 백준 4963 섬의 개수 (1) | 2023.01.22 |
댓글