[프로그래머스] 숫자의 표현 - 파이썬 풀이
2023. 2. 14. 14:23ㆍ프로그래밍/자료구조 및 알고리즘
반응형
문제 설명
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 이하의 자연수 입니다.
풀이
손풀이를 간단히 첨부하겠다.
처음에는 등차수열 공식으로 접근해보려고 했는데, 이것을 프로그래밍으로 구현을 하기에 괴리감이 있었다. 🥲
두번째로는, 예시 케이스를 보며 규칙성을 확보하여, 이에 대한 수도코드를 짜보았다. 다행히 예외사례 없이 성공하였다.
반응형
핵심은, k개의 수라면 (1+.....+k)만큼 n에서 뺀 수가, k로 나누어지는지 여부를 k를 1부터 증가시키면서, n이 0이 될때까지 판단하면 되는 것이다.
풀고난 후, 등차수열 공식을 구현해서 풀어내신 분들도 계신 것을 확인하였다.
코드 전문
def solution(n):
# 연속된 수니까, 각 수 간의 차가 c로 이루어져 있다고 보고.
# 수의 차(누적 c)를 n에서 빼준 값을 수의 차(c)로 나누었을 때 나누어 떨어지면, 이 수는 연속된 자연수들로 표현할 수 있다.
answer = 0
c = 0
n -= c
while n > 0 :
c += 1
n -= c
if n % c == 0 :
answer += 1
return answer
감사합니다. 좋은하루 되세요.
반응형
'프로그래밍 > 자료구조 및 알고리즘' 카테고리의 다른 글
[백트래킹, 백준] N과 M (1), (2) <중복을 허용하지 않는 순열, 조합> (1) | 2023.09.03 |
---|---|
[백트래킹, 코드트리] 아름다운 수 (0) | 2023.08.15 |
[프로그래머스] Lv.0 안전지대 파이썬 코드 풀이 (0) | 2023.01.24 |
[자료구조, 파이썬] 리스트, 딕셔너리, 튜플(list, dict, tuple) (0) | 2023.01.18 |
[프로그래머스] 코딩테스트 연습 - 이중우선순위큐 풀이 (파이썬) (1) | 2023.01.03 |