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

YH·2023년 12월 21일
0

문제

숫자의 표현 : 문제 링크


문제 분석

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

    • 1 + 2 + 3 + 4 + 5 = 15
    • 4 + 5 + 6 = 15
    • 7 + 8 = 15
    • 15 = 15
  • 자연수 n이 매개변수로 주어질 때, 연속된 자연수들로 n을 표현하는 방법의 수를 return하는 solution를 완성

  • 제한 조건

    • n은 10,000 이하의 자연수 이다.
  • n을 표현하는 방법의 수를 저장할 정수형 변수 answer을 0으로 초기화. for loop를 사용하여 첫번째 loop의 초기화 식을 i = 1로 설정하고 연속한 자연수의 합을 저장할 정수형 변수 tmp를 0으로 초기화. 두번째 for loop의 초기화 식을 j = i로 설정하여 j부터 시작하여 tmp에 더하고 저장. if문을 사용하여 tmp가 n과 같다면 answer을 1씩 늘리고 loop를 탈출하고, else if문을 사용하여 tmp가 n을 초과한다면 loop 탈출. 두개의 loop를 탈출 후, 최종적으로 저장된 answer을 return


풀이

using namespace std;

int solution(int n) {
    int answer = 0;
    
    for(int i = 1; i <= n; ++i) {
        int tmp = 0;
        for(int j = i; j <= n; ++j) {
            tmp += j;
            if(tmp == n) {
                answer++;
                break;
            }
            else if(tmp > n) break;
        }
    }
    return answer;
}
profile
Keep Recycling Your Dreams

0개의 댓글