본문 바로가기
Algorithm/Programmers Lv.2

숫자의 표현

by newnu 2021. 7. 7.
반응형

# Problem

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

 

# My Answer

def solution(n):
    answer = 0
    temp=[]
    for i in range(1,n+1):
        temp.append(i)
        if sum(temp)==n:
            answer+=1
            continue
        while sum(temp)>n:
            temp = temp[1:]
            if sum(temp)==n:
                answer+=1
    return answer

n이 될때까지 리스트에 순서대로 넣고 n보다 커버리면 앞에서부터 하나씩 제거

n이 되면 answer+=1

 

# 다른 사람의 풀이

def expressions(num):
    return len([i  for i in range(1,num+1,2) if num % i is 0])

 

# 다른 사람의 풀이 2

def expressions(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

1부터 시작해서 더해가면서 n 찾기

반응형

'Algorithm > Programmers Lv.2' 카테고리의 다른 글

JadenCase 문자열 만들기  (0) 2021.07.24
[Summer/Winter Coding(~2018)] 영어 끝말잇기  (0) 2021.07.23
올바른 괄호  (0) 2021.07.06
행렬의 곱셈  (0) 2021.07.06
다음 큰 숫자  (0) 2021.07.06