ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 백준 2231 - 분해합
    백준 algorithm 2019. 9. 10. 14:33
    반응형

    문제 설명

    간단하게 브루트포스로 구하면 되는 문제였다. 
    자릿수를 세는 과정에서 실수가 있었고, 벡터에 넣는 값을 다른 값을 집어넣는 실수를 하여 코드가 깔끔하지가 않다. 

    #include <iostream>
    #include <vector>
    #include <algorithm>
    
    using namespace std;
    
    int main()
    {
    	int N = 0;//분해합의 수
    	vector<int> M; //생성자 집합
    	cin >> N;
    	for (int i = 1; i < N; i++)
    	{
    		int inum = i;//숫자를 임시로 저장할 변수 
    		int temp = i;
    		int jari = 1;
    		int jari_num = 0;
    		while (inum >= jari)//숫자의 자릿수를 세는 while문
    		{
    			jari *= 10;
    			jari_num++;
    		}
    		for (int j = 0; j < jari_num; j++)//각자릿수를 temp변수에 더하는 for문
    		{
    			temp += inum % 10;
    			inum = inum / 10;
    		}
    		if (temp == N)
    		{
    			M.push_back(i);//조건에 맞는 숫자를 vector에 집어 넣음
    		}
    	}
    	if (M.size() == 0)cout << 0;//생성자가 없는 경우 
    	else{
    	sort(M.begin(), M.end());//순서대로 들어가기에 필요없는 코드 
    	cout << *(M.begin());
    	}
    	return 0;
    }

     

    반응형

    '백준 algorithm' 카테고리의 다른 글

    백준 8974 - 희주의 수학시험  (0) 2019.09.11
    백준 2750 - 수 정렬하기 , 백준 2751 - 수 정렬하기 2  (0) 2019.09.10
    백준 2292 - 벌집  (0) 2019.09.08
    백준 15552 - 빠른 A+B  (0) 2019.09.07
    백준 2562 - 최댓값  (0) 2019.09.06

    댓글

Designed by Who.