출처: https://bumcrush.tistory.com/182 [맑음때때로 겨울]
반응형

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

 

프로그래머스

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

programmers.co.kr

 

package Programmers;

public class 숫자의표현 {
    public static void main(String[] args){
        숫자의표현 T = new 숫자의표현();
        int n = 15;
        T.solution(n);
    }
    public int solution(int n) {
        int answer = 0;
        int sum = 0;
        int lt = 1;

        for (int rt = 0; rt <= n; rt++) {
            sum += rt;
            if(sum == n) answer++;
            while (sum >= n){
                sum -= lt++;
                if(sum == n) answer++;
            }
        }

        return answer;
    }

}

1. 풀이

  1.1) 투포인터 알고리즘으로 품.

     - for문은 rt 가 n까지 증가, 

     - 값을 증가시키면서 n과 비교하여 같다면 answer++;

     - 합한값이 n보다 크다하면 lt값을 이동시켜주면서 있던자리의 값은 빼주면 된다. 

반응형

+ Recent posts