(Python, Java) 프로그래머스 - 숫자의 표현
in Algorithm on Programmers, Level2
[문제 링크]
Python 풀이
def solution(n):
answer = 0
sum = 0
start = 0
end = 0
while end <= n:
if sum < n:
end += 1
sum += end
else:
if sum == n:
answer += 1
start += 1
sum -= start
return answer
무난한 투포인터 알고리즘이다.
Java 풀이
class Solution {
public int solution(int n) {
int cnt = 0;
int start = 0;
int end = 0;
int sum = 0;
while (end <= n) {
if (sum < n) {
end += 1;
sum += end;
} else {
if (sum == n) {
cnt += 1;
}
start += 1;
sum -= start;
}
}
return cnt;
}
}