알고리즘/프로그래머스 문제풀이

[프로그래머스] lv.2 숫자의 표현 풀이

감자156 2023. 11. 19. 18:45
반응형

문제

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

 

프로그래머스

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

programmers.co.kr

 

문제 풀이

효율성 테스트를 한번에 못풀어서 다른 사람의 힌트를 참조함.. 투포인터로 접근

연속된 숫자의 합이기 때문에 x를 시작점으로 두고 y를 늘려가며 합을 확인함.

합이 num보다 커지면 x를 한칸 오른쪽으로 밀면 합-1되기 때문에 새로운 경우의 수가 됨

이런식으로 포인터 x,y를 옮겨가며 모든 경우를 체크

 

코드

def solution(num):
    res = 0
    for x in range(1,num+1):
        SUM = 0
        for y in range(x, num+1):
            SUM += y
            if SUM == num:
                res += 1
                break
            if SUM > num:
                break

    return res
반응형