https://www.acmicpc.net/problem/1789
문제 해결을 위한 과정
이 문제의 경우 난이도에 비해 생각을 하기가 조금 어려웠던 문제였습니다. 1부터 하나씩 더해가면서 만든 합이 S를 초과하는 순간 1부터 하니씩 더한 숫자들의 개수 - 1이 자연수 N의 최댓값 입니다.
이를 적용하면 다음과 같습니다.
1 + 2 + 3 + 4 .... + 17 + 18 + 19 + 20 = 210
즉 20을 더했을때 S를 초과하므로 20까지의 숫자들의 개수(20개) - 1 즉 19 입니다.
소스코드
1
2
3
4
5
6
7
8
9
10
11
12
|
n = int(input())
count = 0
ans = 0
for i in range(1, n):
ans += i
count += 1
if ans > n:
count -= 1
break
print(count)
|
cs |
'알고리즘 > 백준' 카테고리의 다른 글
백준 알고리즘 1946번: 신입 사원(Python) (0) | 2022.01.06 |
---|---|
백준 알고리즘 11866번: 요세푸스 문(Python) (0) | 2022.01.06 |
백준 알고리즘 10610번: 30(Python) (0) | 2022.01.03 |
백준 알고리즘 1026: 보물(Python) (0) | 2022.01.03 |
백준 알고리즘 1010번: 다리 놓기 (Python) (0) | 2021.12.27 |