내 인생은 개발 중
[프로그래머스] 숫자의 표현 - Python 본문
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)의 시간복잡도로 구현하여 풀 수 있었따!
앞으로 알고리즘 문제 많이 풀어서 다양한 문제를 보더라도 어떤 알고리즘을 이용해서 풀면 좋을지 바로 생각날 수 있게끔
열심히 풀어봐야겠댱
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 피로도 - Python (0) | 2024.05.16 |
---|---|
[프로그래머스] 다음 큰 숫자 - Python (0) | 2024.05.16 |
[프로그래머스] 프로세스 - Python (0) | 2024.05.13 |
[프로그래머스] 타겟 넘버 - Python (0) | 2024.05.12 |
[프로그래머스] 이진 변환 반복하기 - Python (0) | 2024.05.08 |
Comments