1789번: 수들의 합 python

joonho·2022년 11월 23일
0

acmipc

목록 보기
8/8

programmers 코테 고득점 kit - (분야) - (문제 이름)

문제 설명

서로 다른 N개의 자연수의 합이 S라고 한다. S를 알 때, 자연수 N의 최댓값은 얼마일까?
ex) s : 200 N의 최대값: 1,2,3,4,5...,17,18,29(19개)

제한 사항

  • 첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다.
  • 첫째 줄에 자연수 N의 최댓값을 출력한다.

문제 풀이

문제에서 주어진 자연수 S의 값의 범위가 매우커서 S의 값이 작을 때부터 커지면서 규칙성 같은 게 있는지 찾으려했다. S가 1부터 9까지의 N의 최대값의 경우의 수를 계산해보니 1~n까지의 합을 넘어가지 않는 수들의 합 + @ 이 최대 개수의 경우라는 결론을 내렸다.
코드는 다음과 같다.

n = int(input())

i = 1
while n >= (i * (i + 1)) // 2:
    i += 1
print(i - 1)
profile
나를 위한 기록

0개의 댓글