[문제]
Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할 수 있습니다.
- 1 + 2 + 3 + 4 + 5 = 15
- 4 + 5 + 6 = 15
- 7 + 8 = 15
- 15 = 15
자연수 n이 매개변수로 주어질 때, 연속된 자연수들로 n을 표현하는 방법의 수를 return하는 solution를 완성해주세요.
https://school.programmers.co.kr/learn/courses/30/lessons/12924
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
🎨 풀이
💡 전체 코드
def solution(n):
answer = 0
for i in range(1,n+1):
tmp = 0
for j in range(i,n+1):
tmp += j
if tmp > n :
break
elif tmp == n :
answer += 1
break
return answer
> 핵심 : 숫자 하나를 기준으로 잡고, 쭉 더해준 후 비교하기
🍦 코드 설명 (실행 순서대로 나열)
#solution
answer = 0
for i in range(1,n+1):
tmp = 0
for j in range(i,n+1):
tmp += j
if tmp > n :
break
elif tmp == n :
answer += 1
break
return answer
1. 변수와 스택를 초기화한다.
- answer : 정답
2. 1부터 n+1까지 for문을 실행한다.
- 실질적으로는 1부터 n까지 실행된다.
- 기준으로 잡을 숫자.
3. tmp = 0으로 두고, i부터 쭉 더해준다.
4. 만약 tmp가 n보다 크다면, for문을 break 해준다.
5. tmp == n 이라면 answer += 1을 해준 후 break 한다.
6. answer을 return 해준다.

끝~
⭐ 느낀점
> 실행 시간에서 통과가 안될 줄 알았는데 통과가 되어서 다행이다. ㅠㅠ 고생했담. 굿굿
'🎲 알고리즘 공부 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 / Level 2] JadenCase 문자열 만들기 (파이썬) (0) | 2022.09.22 |
---|---|
[프로그래머스 / Level 2] 피보나치 수 (파이썬) (0) | 2022.09.20 |
[프로그래머스 / Level 2] 다음 큰 숫자 (파이썬) (0) | 2022.09.18 |
[프로그래머스 / Level 2] 올바른 괄호 (파이썬) (0) | 2022.09.17 |
[프로그래머스 / Level 1] 크레인 인형뽑기 게임 (파이썬) (0) | 2022.09.16 |