본문 바로가기

Programming [Python]/백준 알고리즘 솔루션

#173 백준 파이썬 [1789] 수들의 합

https://www.acmicpc.net/problem/1789

 

#Solution

200을 각각 다른 수로 해당 수를 구성하는 방법 중 최댓값은

1+2+3+... + 16+17+18 + 29 이다

가장 작은 값들로 수를 구성해준뒤, 마지막 값으로 나머지를 채워주면 된다.

 

즉 다시 말해 자연수 x의 정답은

 

sum(1:18) <= x < sum(1:19) (171~189)

-> 18개가 최대

 

sum(1:19) <= x < sum(1:20) (190~209)

-> 19개가 최대

인 셈이다.

 

 

N = int(input())

temp = 1
answer = 0

while True:
    N -= temp
    
    if N >= 0:
        answer += 1
        temp += 1
        
    else:
        print(answer)
        break