쌓고 쌓다

[프로그래머스] 숫자의 표현 C++ 풀이 본문

알고리즘/프로그래머스

[프로그래머스] 숫자의 표현 C++ 풀이

승민아 2022. 9. 30. 22:49

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

 

프로그래머스

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

programmers.co.kr

전체 코드

#include <string>
#include <vector>
#include <iostream>

using namespace std;

int solution(int n) {
    int answer = 0;
    
    for(int i=1;i<=n;i++)
    {
        int sum=0;
        for(int j=i;j<=n;j++)
        {
            sum+=j;
            if(sum==n)
            {
                answer++;
                break;
            }
            else if(sum>n)
                break;
        }
    }
    
    
    return answer;
}

 

연속적으로 수를 sum에 더해서 n이 만들어질때까지 반복합니다.

만약 연속적으로 더할때 n을 넘어가면 n을 만들기가 불가능한거니 break 해줍니다.

연속적으로 수를 더하다 sum==n이 되면 만들기가 가능하므로 answer을 더해주고 break합니다.

 

첫번째 for문 i는

1부터 n까지 연속적인 수를 더할때 스타트를 끊는 수입니다.

 

두번째 for문 j는

sum에 더해질 연속적인 수입니다.

i가 3이라면 j는 3 + 4 + 5 + 6 ... 더해지겠죠

Comments