백준(B2) 2231번: 분해합 (C언어 C11 C99)

2021. 10. 8. 18:03·C언어/백준 문제풀이
반응형

코드를 보기 전에: 이 문제를 쉽게 풀어볼려고 20분동안 고민을 하다가 그냥 막무가내로 풀었다.

속으로 내가 선택한 노가다다 악으로 깡으로 버티자 하면서 풀었다.

내가 생각하는 이 문제의 핵심 중점은 숫자가 주어졌을때 각 자리수의 숫자를 한개의 자연수로 만드는 것이다.

 

Fullcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <stdio.h>
int num(int x);
int main()
{
    int n;
    scanf("%d", &n);
    printf("%d", num(n));
    return 0;
}
int num(int x)
{
    int size, sum;
    int result = 1000000;
    if (x == 0)
        return 0;
    else
    {
        for (int a = 0; a < x; a++)
        {
            sum = a + a % 10 + (a % 100 / 10) + (a % 1000 / 100) + (a % 10000 / 1000) + (a % 100000 / 10000) + (a % 1000000 / 100000) + (a % 10000000 / 1000000);
            //  a% 10은 1의 자리, a%100 / 10 -> a를 백으로 나누면 두자리 숫자가 나온다. 그 숫자를 10으로 나누면 한자리 숫자가 된다. 그런 매커니즘으로 계속 노가다 하는것이다.
            if (sum == x)
            {
                result = a;
                break; // 문제에서 가장 작은 분해합을 구하라고 하는데 쉽게말해 분해합이 처음 나왔을때 break를 하면 가장 작은 분해합이다.
            }
            if (a + 1 == x)
                return 0; // a+1 == x는 분해합이 구해지지 않는 경우이다.
        }
        return result;
    }
}
Colored by Color Scripter
cs
반응형
'C언어/백준 문제풀이' 카테고리의 다른 글
  • 백준(S2) 11047번: 동전 0 (C언어 C11 C99)
  • 백준(S5) 7568번: 덩치 (C언어 C11 C99)
  • 백준(S3) 1748번: 수 이어 쓰기 1 (C언어 C11 C99)
  • 백준(S5) 1476번: 날짜 계산 (C언어 C11 C99)
코딩하는_대학생
코딩하는_대학생
Java Developer, Open Source Enthusiast, Proud Son
  • 코딩하는_대학생
    코딩하는 대학생에서 개발자까지
    코딩하는_대학생
  • 전체
    오늘
    어제
    • 분류 전체보기 (218)
      • 코딩하는 대학생의 책 추천 (8)
        • 클린코드 (5)
        • 헤드퍼스트 디자인패턴 (3)
      • Backend (8)
        • Spring (14)
        • AWS (3)
        • 회고 (4)
        • Redis (5)
        • 다양한 시각에서 바라본 백엔드 (3)
      • Python (35)
        • 개념 및 정리 (15)
        • 백준 문제풀이 (20)
      • JAVA (17)
        • 개념 및 정리 (14)
        • 백준 문제풀이 (2)
      • 왜? (7)
      • C언어 (42)
        • 개념 및 정리 (9)
        • 백준 문제풀이 (32)
      • 개인 공부 (27)
        • 대학 수학 (5)
        • 대학 영어 (10)
        • 시계열데이터 처리 및 분석 (5)
        • 컴퓨터 네트워크 (6)
        • 운영체제 (1)
      • 솔직 리뷰 (23)
        • 꿀팁 (6)
        • IT기기 (1)
        • 국내 여행 (7)
        • 맛집 (2)
        • 알바 리뷰 (2)
      • 대외활동 (17)
        • 체리피우미 3기 (4)
        • 꿀잠이들 6기 (13)
      • 음식 평가 (1)
      • 일상 & 근황 (2)
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코딩하는_대학생
백준(B2) 2231번: 분해합 (C언어 C11 C99)
상단으로

티스토리툴바