728x90
숫자의 표현
문제 설명
입출력 예
Solution
def solution(n):
answer = 1 #표현 방법의 수(return 값)
k = 1 #첫째 항
while(k<=(n/2)):
sum = 0 #수열 합
i = k #첫째 항 저장
while(sum<=n):
sum+=i
if sum==n:
answer+=1 #방법의 수 count
break
i+=1 #현재 항+1 -> 다음 항
k+=1 #첫째 항 +1
return answer
15=15와 같이 표현 방법의 수는 본인만 수열에 포함하여 합하는 경우가 무조건 있으므로, answer = 1로 시작
그 다음은 두 개의 수를 더하는 경우인데, 이는 7+8과 같이 15의 절반이 첫째 항이 되는 경우가 최대인 경우이므로, 첫째 항을 표현하는 k를 while문을 통해 n/2까지만 반복
Result
728x90
'Python > 코딩테스트' 카테고리의 다른 글
[프로그래머스/python] 코딩테스트 연습 Lv.2 카펫 (0) | 2023.12.29 |
---|---|
[프로그래머스/python] 코딩테스트 연습 Lv.2 짝지어 제거하기 (0) | 2023.12.28 |
[프로그래머스/python] 코딩테스트 연습 Lv.2 (7월 첫 번째 주 1) (0) | 2023.07.04 |
[프로그래머스/python] 코딩테스트 연습 Lv.2 (6월 다섯 번째 주 2) (0) | 2023.06.28 |
[프로그래머스/python] 코딩테스트 연습 Lv.1 (6월 다섯 번째 주 1) (0) | 2023.06.25 |