#문제
https://programmers.co.kr/learn/courses/30/lessons/12924
#소스코드
class Solution {
public int solution(int n) {
int answer = 0;
int R = 1, sum = 0;
for(int L = 1; L <= n/2; L++){
sum -= L-1;
while(R <= n/2+1 && sum < n){
sum += R;
R++;
}
if(sum == n) answer++;
}
return answer+1;
}
}
Two Pointer 알고리즘을 이용했습니다.
n을 모두 순회할 필요는 없으므로, 자기 자신은 마지막에 +1을 더하는 것으로 처리했습니다.
'💡Problem Solving > Programmers' 카테고리의 다른 글
[프로그래머스] 다음 큰 숫자 (Java) (0) | 2021.10.18 |
---|---|
[프로그래머스] 파일명 정렬 (Java) (0) | 2021.10.18 |
[프로그래머스] 스킬트리 (Java) (0) | 2021.10.18 |
[프로그래머스] 올바른 괄호 (Java) (0) | 2021.10.18 |
[프로그래머스] 3진법 뒤집기 (Java) (0) | 2021.10.17 |