728x90
1. 숫자의 표현
문제 설명
Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할 수 있습니다.
자연수 n이 매개변수로 주어질 때, 연속된 자연수들로 n을 표현하는 방법의 수를 return하는 solution를 완성해주세요.
내 풀이(오답)
def solution(n):
answer = 0
total_sum = 0
for i in range(1, n + 1):
total_sum += i
if total_sum == n:
answer += 1
elif total_sum > n:
break
return answer
이 방식은 연속된 자연수의 합을 모두 계산하지 않고, total_sum이 n을 초과하는 순간에 반복문을 종료하기 때문에 정확한 결과를 얻을 수 없다
예를 들어, solution(15)을 호출할 때, 가능한 연속된 자연수의 합은 [1+2+3+4+5], [4+5+6], [7+8]로 세 가지이지만, 코드는 [1+2+3+4+5]에서 반복문이 종료되어 정확한 결과를 반환하지 못한다.
다른 사람 풀이
def solution(n):
answer = 0
for i in range(1,n+1):
total_sum = 0
for j in range(i, n+1):
total_sum += j
if total_sum == n:
answer+=1
break
elif total_sum >n:
break
return answer
728x90
'PYTHON > 프로그래머스 코딩테스트 연습' 카테고리의 다른 글
[프로그래머스] 파이썬 코딩테스트 연습 LV1(이상한 문자 만들기) (0) | 2024.01.27 |
---|---|
[프로그래머스] 파이썬 코딩테스트 연습 LV1(예산) (2) | 2024.01.25 |
[프로그래머스] 파이썬 코딩테스트 연습 LV1(3진법 뒤집기) (0) | 2024.01.23 |
[프로그래머스] 파이썬 코딩테스트 연습 LV2 (이진 변환 반복하기) (0) | 2024.01.20 |
[프로그래머스] 파이썬 코딩테스트 연습 LV1 (같은 숫자는 싫어) (0) | 2024.01.19 |