-
숫자의 표현python algorithm 2024. 2. 22. 21:28
Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할 수 있습니다.
1 + 2 + 3 + 4 + 5 = 15
4 + 5 + 6 = 15
7 + 8 = 15
15 = 15
[문제]
자연수 n이 매개변수로 주어질 때, 연속된 자연수들로 n을 표현하는 방법의 수를 return하는 solution를 완성해주세요.
[풀이]
def solution(n): answer = 1 for i in range(1, n//2 + 1): total = 0 while total < n: total += i if total == n: answer += 1 break else: i += 1 return answer
[풀이 방법]
1. 모든 수는 자기 자신으로 표현될 수 있다.
: answer = 1로 설정 (최소 1 이상이기 때문)
2. 2개의 숫자로 표현될 경우, 표현할 수 있는 가장 큰 수는 n/2 혹은 n/2와 n/2 + 1로 이루어진다.
: 고려해야할 최대 숫자는 n/2 + 1
3. 연속된 숫자의 합
: for 문을 통한 반복실행
4. 연속된 숫자의 합이 자기 자신보다 클 경우, 덧셈의 시작 숫자를 늘려야
: while total < n
'python algorithm' 카테고리의 다른 글
카펫 (0) 2024.02.23 멀리 뛰기 (0) 2024.02.23 짝지어 제거하기 (0) 2024.02.19 이진 변환 반복하기 (0) 2024.02.18 캐시 크기에 따른 실행 시간 측정 (0) 2024.02.18