728x90
반응형
SMALL
✏️ 문제
문제 파악
N개가 최대가 되어야 하므로 = S가 제일 많은 개수의 자연수로 이루어져야 하므로 제일 작은 자연수(1)부터 S에서 빼가면서 구해주면 된다.
알고리즘
- 수학
- 그리디 알고리즘
코드
- while 사용
s = int(input())
start = 1
n = 0
while True:
if s < start: # s < start가 되는 순간 s -= start 후의 s 값이 자연수가 되지 않음 (조건 미성립)
break
else:
s -= start
start += 1 # 서로 다른 자연수이므로
n += 1
print(n)
- for 사용
s = int(input())
n = 0
for i in range(1, s+1):
if s < i:
break
else:
s -= i
n += 1
print(n)
728x90
반응형
LIST
'PS > 백준' 카테고리의 다른 글
[Python] 1541번 잃어버린 괄호 (0) | 2024.07.14 |
---|---|
[Python] 2217번 로프 (2) | 2024.07.14 |
[Python] 10988번 팰린드롬인지 확인하기 (0) | 2024.04.21 |
[Python] 2444번 별 찍기 - 7 (0) | 2024.04.21 |
[JAVA] 15650번 N과 M (2) (1) | 2024.02.11 |