본문 바로가기
코딩공부/프로그래머스 (python)

[프로그래머스] 숫자의 표현 (Python)

by CodingKwon 2022. 9. 25.

문제 링크 (Level 2)

https://school.programmers.co.kr/learn/courses/30/lessons/12924

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

나의 코드 (Python)

def solution(n):
    answer = 1  # n
    ran = 0
    if n == 1:
        return 1
    if n % 2 == 0:
        ran = n // 2
    else:
        ran = n // 2 + 1
    for i in range(1, ran+1):
        tmp = 0
        for j in range(i, ran+1):
            tmp += j
            if tmp == n:
                answer += 1
            elif tmp > n:
                break
            
    return answer

 

이 문제는 연속하는 수가 주어진 조건과 같아야 하기 때문에 이중 for문을 사용했습니다.

1부터 n까지, 그리고 그다음 수부터 n까지 가는 식을 구현하기 위함입니다.

제한사항이 10000이기 때문에 속도 향상을 위해 짝수는 절반, 홀수는 절반+1까지만 돌게 하여 불필요한 연산을 줄였습니다.

 

댓글