728x90
[파이썬] 백준 1789 : 수들의 합
https://www.acmicpc.net/problem/1789
1789번: 수들의 합
첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다.
www.acmicpc.net
실버 5
그리디 알고리즘, 수학
접근
N개의 자연수의 합이 입력한 값과 같을때, N의 최댓값을 구하는 문제이다.
이때 N개의 자연수는 전부다 다른 값을 가져야 한다.
합을 이루고 있는 자연수들이 최대가 되기 위해서는 값이 작을수록 좋을 것이다.
200을 입력했다면 1+2+3+4+5...로 계속해서 합산을 해주고, 200을 몇번째로 넘어가는지 확인하면 될 것이다.
코드
S = int(input())
sum = 0
N = 0
for i in range(1, S+1):
sum += i
N += 1
if sum > S:
print(N-1)
break
sum에다가 계속 값을 더하면서, N의 값도 1을 계속해서 더해준다.
만약 sum이 입력한 값보다 커졌을 경우, N-1이 N의 최댓값이 된다.
728x90
'알고리즘 문제 풀이' 카테고리의 다른 글
[파이썬] 백준 15652 : 나는야 포켓몬 마스터 (0) | 2022.03.09 |
---|---|
[파이썬] 백준 15652 : N과 M(4) (0) | 2022.03.08 |
[파이썬] 백준 1931 : 회의실 배정 (0) | 2022.03.08 |
[파이썬] 백준 1541 : 잃어버린 괄호 (0) | 2022.03.06 |
[파이썬] 백준 11399 : ATM (0) | 2022.03.05 |