문제 설명
Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할 수 있습니다.
- 1 + 2 + 3 + 4 + 5 = 15
- 4 + 5 + 6 = 15
- 7 + 8 = 15
- 15 = 15
자연수 n이 매개변수로 주어질 때, 연속된 자연수들로 n을 표현하는 방법의 수를 return하는 solution를 완성해주세요.
제한사항
- n은 10,000 이하의 자연수 입니다.
입출력 예
n result
| 15 | 4 |
입출력 예 설명
입출력 예#1
문제의 예시와 같습니다.
※ 공지 - 2022년 3월 11일 테스트케이스가 추가되었습니다.
코드
def solution(n):
# answer = 0
count = 0
for i in range(n,0,-1):
answer = 0
a=1
answer += i
while answer <= n:
if answer == n:
print(f"i는 {i}일때입니다")
count += 1
break
else:
answer = answer + i - a
a += 1
# n = 15, i = 4 가정하면,
# Step 1 : answer + i - a = 4 + 4 -1 = 7
# Step 2 : answer + i - a = 7 + 4 -2 = 9
# Step 3 : answer + i - a = 9 + 4 -3 = 10
# Step 4 : answer + i - a = 10 + 4 -4 = 10
# Step 5 : answer + i - a = 10 + 4 -5 = 9
# Step 5부터 a가 더 커져서 음수가 되어버림. 그래서 아래와 같은 로직을 추가해야함. 이 로직을 추가하지 않으면 While문을 빠져나올 수 없음!!
if i - a < 0:
break
return count
'⭐라이프로그⭐ > 🧑💻코딩 테스트 준비' 카테고리의 다른 글
| [프로그래머스 Level 2] 8. 짝지어 제거하기 (0) | 2026.01.08 |
|---|---|
| [프로그래머스 Level 2] 7. 다음 큰 숫자 (0) | 2026.01.08 |
| [프로그래머스 Level 2] 4. JadenCase 문자열 만들기 (0) | 2026.01.08 |
| [프로그래머스 Level 2] 3. 최솟값 만들기 (0) | 2026.01.08 |
| [프로그래머스 Level 2] 2. 올바른 괄호 (0) | 2026.01.08 |