프로그래머스 LV2 - 숫자의 표현
내 풀이
def solution(n):
num = 1
start_num = 1
count = 1
while start_num < (n / 2):
total = 0
while total < n:
total += num
if total == n:
count += 1
break
num += 1
start_num += 1
num = start_num
return count
다른 풀이
def solution(n):
# 결과값을 1로 설정(자기 자신의 수를 말함)
# 예) 15 = 15 또한, 한 개의 표현
result = 1
# 1부터 n의 절반까지 순회
# 연속된 자연수들의 합이 n을 초과하는 경우는 고려하지 않아도 되기 때문
for i in range(1, n//2 + 1):
# 각 반복에서의 연속된 자연수들의 합을 저장할 변수를 0으로 초기화
total = 0
# 연속된 자연수들을 더하는 동안 그 합이 n보다 작은 경우에는 계속 반복
while total < n:
total += i
# total 값이 n과 같다면 결과값을 1 증가시키고, 이 반복문을 종료
if total == n:
result += 1
break
i += 1 # 다음 연속된 자연수로 넘어갑니다.
return result
출처: https://1ets-just-do-it.tistory.com/109 [파이썬은 신이야🔥🔥🔥:티스토리]
풀이 해석
- for문과 while문을 이용함
배울 점
- while문 두개가 아니라 하나는 for문으로 표현하는게 더 좋았을듯
댓글남기기