본문 바로가기
파이썬 코딩테스트

백준 1789번 - 수들의 합 (파이썬/Python)

by 준벨롭 2024. 1. 5.

문제

서로 다른 N개의 자연수의 합이 S라고 한다. S를 알 때, 자연수 N의 최댓값은 얼마일까?

입력

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

출력

첫째 줄에 자연수 N의 최댓값을 출력한다.

답안

t = int(input())

sum = 0
cnt = 0
for i in range(1, t+1):
    sum += i
    cnt += 1
    if sum > t:
        cnt -= 1
        break
print(cnt)

후기

sum, cnt를 정의해주고

1~t까지의 범위에서 1씩 증가하는 값을 sum에 넣어주고, cnt값도 1씩 증가시킨다.

만약 sum이 주어진 입력값인 t보다 커지게 된다면, 그 직전값의 cnt를 구해야 하므로 cnt에서 1을 빼주고 반복문에서 탈출한다.

탈출한 cnt값을 출력하면 된다.

728x90