💡Problem Solving/Programmers

[프로그래머스] 숫자의 표현 (Java)

gom20 2021. 10. 18. 15:27

#문제

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

 

코딩테스트 연습 - 숫자의 표현

Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할

programmers.co.kr

#소스코드

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을 더하는 것으로 처리했습니다.