image

Silver Ⅴ 🔗1789. 수들의 합

📝문제 요약

문제 설명

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

입력

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

출력

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


✏️문제 풀이

  • 정수 n을 입력받음
  • 수를 더한 값을 저장할 sum_n 초기화
  • i = 1로 지정하여 1부터 더하게 만듦
  • sum_n + in보다 커질때까지 반복
    • sum_n 을 1부터 더해줌
    • i 는 1씩 증가
  • sum_n + in보다 커지면 조건문을 빠져나와 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)

댓글남기기