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
'알고리즘 > 백준 - 파이썬' 카테고리의 다른 글
백준) 2476번 주사위 게임 문제 (파이썬) (0) | 2022.06.09 |
---|---|
백준) 2754번 학점계산 문제 (파이썬) (0) | 2022.06.08 |
백준) 10817번 세 수 문제 (파이썬) (0) | 2022.06.08 |
백준) 2530번 인공지능 시계 문제 (파이썬) (0) | 2022.06.08 |
백준) 10172번 개 문제 (파이썬) (0) | 2022.06.08 |
댓글