파이썬 알고리즘-103 (프로그래머스) 숫자의 표현

jiffydev·2021년 1월 28일
0

Algorithm

목록 보기
110/134

코드

def solution(n):
    answer = 0
    # 왼쪽, 오른쪽 포인터 설정
    lt,rt=0,1
    # n의 중간값 +1 을 넘어가면 2개 이상을 선택했을 때 무조건 n보다 커지므로 
    # 중간값 +1 까지만 리스트를 설정
    lst=[i for i in range(1,(n//2)+2)]
    while rt<len(lst):
        if sum(lst[lt:rt+1])==n:
            answer+=1
            rt+=1
        elif sum(lst[lt:rt+1])<n:
            rt+=1
        else:
            lt+=1
    # 숫자 하나로 표현했을 경우를 더함
    return answer+1

다른 사람의 풀이

def expressions(num):
    return len([i  for i in range(1,num+1,2) if num % i is 0])
profile
잘 & 열심히 살고싶은 개발자

0개의 댓글