«   2025/09   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Recent Posts
Tags more
Today
Total
관리 메뉴

내 인생은 개발 중

[프로그래머스] 숫자의 표현 - Python 본문

Algorithm/프로그래머스

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

seul.e 2024. 5. 14. 22:29

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

 

프로그래머스

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

programmers.co.kr

 

풀이

def solution(n):
    answer = 0
    start, end = 1, 1
    # 총합을 우선 start로 지정해주기
    sum_num = start

    # end가 n + 1이 되면 while문 종료
    while end < n + 1:
        # 총합이 n보다 같거나 클 때
        if sum_num >= n:
            # 총합이 n과 같으면 answer + 1
            if sum_num == n:
                answer += 1
            # 총합에서 start 빼주기
            sum_num -= start
            # start 증가
            start += 1
        # 총합이 n보다 작으면 end 증가시키고 end 더해주기
        else:
            end += 1
            sum_num += end

    return answer

 

문제를 보자마자 투포인터를 이용해서 풀어야겠다는 생각을 하였다!

투포인터를 이용하여 O(N)의 시간복잡도로 구현하여 풀 수 있었따!

앞으로 알고리즘 문제 많이 풀어서 다양한 문제를 보더라도 어떤 알고리즘을 이용해서 풀면 좋을지 바로 생각날 수 있게끔
열심히 풀어봐야겠댱

 

Comments