본문 바로가기
알고리즘 공부/프로그래머스 [C++]

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

by 이포터 2022. 10. 27.

문제 링크

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

 

문제 설명

자연수 n이 매개변수로 주어질 때, 연속된 자연수들로 n을 표현하는 방법의 수를 return하는 solution를 완성해주세요.

 

문제 입출력 예)

n result
15 4

 

문제 풀이

  • 연속된 자리수를 생각했기에, for문을 활용하였다.
  1. 이중 for문을 이용하여, 연속된 자리 수를 더해준다.
  2. 만약 n값보다 큰 값이 되면 break
  3. n값과 같은 같이면 answer ++를 해준다.
#include <string>
#include <vector>
#include <iostream>
using namespace std;

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

 

리뷰

  • 코드가 깔끔하지 못한다는 점이 마음에 걸렸다,,.

댓글