728x90
https://www.acmicpc.net/problem/1789
import sys
s = int(sys.stdin.readline())
n = 1 #1
while n*(n+1) / 2 <= s: #2
n += 1 #3
print(n-1) #4
서로 다른 n개의 자연수의 합이 s일때 n의 최댓값을 구하는 문제
#1 : 처음 n을 1로 설정
#2 : n*(n+1) / 2 는 1부터 n까지의 합을 구하는 공식. 공식의 값이 s보다 작거나 같을때까지 반복
#3 : n +1
#4 : 반복문을 끝낼때가 s를 초과할때이니까 n-1은 정답을 출력
728x90
'[PS(Problem Solving)] > [백준]' 카테고리의 다른 글
[백준] 14501 파이썬(python) : 퇴사 - (★) (0) | 2022.08.18 |
---|---|
[백준] 18353 파이썬(python) : 병사 배치하기 (0) | 2022.08.18 |
[백준] 16234 파이썬(python) : 인구 이동 (0) | 2022.08.17 |
[백준] 10162 파이썬(python) : 전자레인지 (0) | 2022.08.17 |
[백준] 18428 파이썬(python) : 감시 피하기 - (★) (0) | 2022.08.17 |