[C++로 풀이] 숫자의 표현⭐⭐

Date:     Updated:

카테고리:

태그:

📌 숫자의 표현

난이도 ⭐⭐

🚀 문제

image


🚀 내 풀이 ⭕

#include <string>
#include <vector>

using namespace std;

int solution(int n) {
    int answer = 0;

    for(int i = 1; i <= n / 2; i++)
    {
        int sum = 0;
        for(int j = i; j <= n; j++)
        {
            if (sum > n)
            {
                sum = 0;
                break;
            }
            else if (sum == n)
            {
                answer++;
                break;
            }
            else if (sum < n)
            {
                sum += j;
            }
        }
    }
    
    answer++;
    
    return answer;
}
  • 1 + 2 + 3 + 4 + 5 = 15 ⭕ answer = 1
  • 2 + 3 + 4 + 5 + 6 > 15 ❌
  • 3 + 4 + 5 + 6 > 15 ❌
  • 4 + 5 + 6 = 15 ⭕ answer = 2
  • 5 + 6 + 7 > 15 ❌
  • 6 + 7 + 8 > 15 ❌
  • 7 + 8 = 15 ⭕ answer = 3

이렇게 n의 절반까지만 검사해보면 충분하다. 그리고 자기 자신은 무조건 해당 될테니 (15 = 15) 마지막에 1 을 더하여 answer = 4가 되고 종료.



🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우 
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄

맨 위로 이동하기

Programmers 카테고리 내 다른 글 보러가기

댓글 남기기