본문 바로가기
알고리즘/BOJ

[BOJ / 백준] 1789번 수들의 합 python / 파이썬 반복문 그리디 알고리즘

by seohmoon 2022. 7. 29.

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

 

1789번: 수들의 합

첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다.

www.acmicpc.net


 

최댓값을 출력하는거라 1부터 시작해서 1씩 더해준 값을 총 합에서 빼줬다.

그리고 마지막에 0으로 떨어지지 않는다면 그때의 값(tem-1)을 이전 값과 더해줬다.

# BOJ1789 수들의 합

S = int(input())
ans = 0
tem = 1
ck = 0
while True:
    if S - tem == 0:
        ans = tem
        break
    elif S - tem > 0:
        S -= tem
        tem += 1
    elif S - tem < 0:
        ck = 1
        break
if ck == 1:
    print(ans + tem -1) # 위에서 tem + 1 해줬기때문에
else:
    print(ans)

댓글