For Programmer

백준 1789번 파이썬 문제풀이(수들의 합) 본문

코팅테스트/백준 문제 모음

백준 1789번 파이썬 문제풀이(수들의 합)

유지광이 2022. 5. 5. 21:15
728x90

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

 

1789번: 수들의 합

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

www.acmicpc.net

 


 

간단한 그리디 문제이다. 1부터 1씩증가시켜가면서 계속 더해가며 횟수를 센다. 만약 S와 같다면 그 횟수를 출력하면 되고 S보다 크다면 마지막 더한 횟수를 -1 해준 값을 출력하면 된다. 

S = int(input())

cur = 0  # 현재 값
i = 1  # 더할 값(1씩 증가)
cnt = 0  # 더한 횟수
while True:

    cur += i  # i만큼 계속 더한다
    cnt += 1  # 횟수를 1씩 증가
    if cur > S:  # 만약 S보다 크다면 한개 줄이면 되므로
        cnt -= 1  # 횟수를 1개 줄이고
        break  # 탈출
    elif cur == S:  # S와 같다면
        break  # 바로 탈출
    i += 1  # 더하는 값 1씩 증가

print(cnt)
728x90
Comments