기록하는삶
[코딩 테스트 연습(파이썬/Python)] 프로그래머스 _ 숫자의 표현 본문
728x90
반응형
https://programmers.co.kr/learn/courses/30/lessons/12924
Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할 수 있습니다.
- 1 + 2 + 3 + 4 + 5 = 15
- 4 + 5 + 6 = 15
- 7 + 8 = 15
- 15 = 15
자연수 n이 매개변수로 주어질 때, 연속된 자연수들로 n을 표현하는 방법의 수를 return하는 solution를 완성해주세요.
def solution(n):
check = 0
for i in range(1, min(n//2+2, 141)):
if i%2 ==0 and (n/i) - int(n/i) == 0.5 and (n/i - i//2 > 0):
check +=1
elif i%2 and (n/i) == int(n/i) and (n/i - i//2 > 0):
check +=1
return check
10000까지의 수는 최대 140개의 자연수의 합으로 표현될 수 있어 저렇게 구현했다. 짝수 개의 합이라면 가운데 숫자가 ___.5의 형태이어야 하고, 홀수라면 정수이어야한다.
시간초과가 될까봐 아래처럼 구현하지 않았는데, 문제 없이 그냥 통과가 됐다. 아마 n의 최댓값이 10000이라 가능한 것 같다.
def solution(num):
answer = 0
for i in range(1, num + 1):
s = 0
while s < num:
s += i
i += 1
if s == num:
answer += 1
return answer
728x90
반응형
'프로그래머스 > 프로그래머스_lv2(Python)' 카테고리의 다른 글
[코딩 테스트 연습(파이썬/Python)] 프로그래머스 _ 다음 큰 숫자 (0) | 2021.09.23 |
---|---|
[코딩 테스트 연습(파이썬/Python)] 프로그래머스 _ 최댓값과 최솟값 (0) | 2021.09.22 |
[코딩 문제 풀이(파이썬/Python)] 프로그래머스 _ N개의 최소공배수 (0) | 2021.09.21 |
[코딩 문제 풀이(파이썬/Python)] 프로그래머스 _ 124나라의 숫자 (0) | 2021.09.21 |
[코딩 문제 풀이(파이썬/Python)] 프로그래머스 _ 후보키 (0) | 2021.09.21 |