프로그래머스의 숫자의 표현(Lv2) 문제이다.


[ 문제풀이 ]

연속한 자연수들로 숫자를 표현할 수 있는 경우의 수를 구해야 하는 문제이다.

본인은 가장 간단하게 생각해 볼 수 있는 2중 for문을 통해서 구현해 보았다.

2중 for문을 사용한 이유는, 첫 번째 for문은 시작숫자를 결정하는 for문이고, 두 번째 for문은 해당 시작숫자부터

연속된 숫자들을 합쳐나가면서 계산을 했을 때, N이 나오는지 판단해주기 위한 for문이다.

코드 자체가 간단하니 별다른 설명보다는 소스코드로 대체하겠다.


[ 소스코드 ]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<string>
#include<vector>
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 = Sum + j;
            
            if (Sum == n) { answer++break; }
            else if (Sum > n) break;
        }
    }
    return answer;
}
cs


+ Recent posts