매일 BOJ

(매일 BOJ) Python 1789번 수들의 합

norepinephrine 2025. 3. 21. 19:12

🔢 문제 요약

  • 자연수들을 서로 다른 수로 계속 더해서 어떤 수 S를 만들려고 해.
  • 만들 수 있는 가장 많은 자연수의 개수를 구하는 문제야.

💡 아이디어

  • 예를 들어서 S = 20이면,
    1 + 2 + 3 + 4 + 5 = 15 → 아직 괜찮음
    1 + 2 + 3 + 4 + 5 + 6 = 21 → 초과함
    → 이 경우 답은 5
  • 즉, 1부터 계속 더하면서 합이 S를 넘지 않게 하고,
  • 그때까지 더한 숫자의 개수를 세면 되는 문제야.

구현 시 주의할 건:

  • 합이 S를 넘는 순간 바로 중단
  • 자연수는 1부터 시작!
a = int(input())
total = 0
count = 0
while True:
    count += 1
    total += count
    if total > a:
        break
print(count-1)