코팅테스트/백준 문제 모음
백준 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