[백준][Python] 1789. 수들의 합
Silver Ⅴ 🔗1789. 수들의 합
📝문제 요약
문제 설명
서로 다른 N개의 자연수의 합이 S라고 한다. S를 알 때, 자연수 N의 최댓값은 얼마일까?
입력
첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다.
출력
첫째 줄에 자연수 N의 최댓값을 출력한다.
✏️문제 풀이
- 정수
n
을 입력받음 - 수를 더한 값을 저장할
sum_n
초기화 i = 1
로 지정하여 1부터 더하게 만듦sum_n + i
가n
보다 커질때까지 반복sum_n
을 1부터 더해줌i
는 1씩 증가
sum_n + i
가n
보다 커지면 조건문을 빠져나와i-1
을 출력
코드와 함께 보는 풀이
# 목표 합계 n을 입력받음
n = int(input())
# 현재까지의 합계를 저장할 변수 초기화
sum = 0
# 현재 더할 자연수 (1부터 시작)
i = 1
# 현재까지의 합에 다음 수를 더했을 때 n을 넘지 않을 때까지 반복
while sum + i <= n:
# 현재 수를 합계에 더함
sum += i
# 다음 자연수로 이동
i += 1
# 마지막 루프에서 i가 하나 더 증가했으므로, 실제 사용된 마지막 수는 i-1이 됨
print(i - 1)
💯제출 코드
n = int(input())
sum_n = 0
i = 1
while sum_n + i <= n :
sum_n += i
i += 1
print(i-1)
댓글남기기