본문 바로가기
알고리즘/백준 - 파이썬

백준) 1789번 수들의 합 (파이썬)

by AI Sonny 2022. 6. 8.
728x90

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

a = int(input())
N = 0
result = 0

for i in range(1,a+1):
    result += i
    N += 1
    if (result > a):
        N -= 1
        break
print(N)

이번 문제는 어떠한 입력값을 받으면 1+2+3+···+n까지 더하여 n의 최댓값을 구하는 문제이다.

 

처음에 입력값 a를 선언하고, N과 result를 0으로 선언하여 초기화 시켜주었고,

 

for 문을 통해 1부터 a+1까지 범위를 정했다. 범위를 a로 하면 0부터 계산하게 되어 결과값이 +1이 되어 나온다.

 

이 후 result를 i로 증감하고, N을 1증감시켜 더한다.

 

마지막으로 if 문을 통해 result 가 a보다 크면 N을 -1하고 break한다.

 

따라서 마지막에 N을 출력하면 답이 나온다.

 

이해가 안되시거나 틀린 정보는 댓글로 알려주시면 감사하겠습니다!

728x90

댓글