반응형
문제는 다음과 같습니다.
https://www.acmicpc.net/problem/2231
2231번: 분해합
어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이
www.acmicpc.net
풀이 코드는 다음과 같습니다.
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int func(string s)
{
int total{0};
for(int i{0};i<s.length();i++)
{
total+=s[i]-'0';
}
return total;
}
int main()
{
int n;
cin>>n;
int result{0};
for(int i{1};i<n;i++)
{
int temp;
temp=i+func(to_string(i));
if(temp==n)
{
result=i;
break;
}
}
cout<<result;
}
문제의 분야가 부르트포스 알고리즘인 만큼, 1부터 입력받은 수 까지 확인해 보는 방식으로 풀었습니다.
각 자리수를 더하는 방법은 입력한 정수를 문자열로 바꾸어 각 자리를 더하는 방식으로 했습니다.
반응형
'백준 문제풀이' 카테고리의 다른 글
2839 번 : 설탕 배달 (0) | 2023.05.04 |
---|---|
19532 번 : 수학은 비대면강의입니다 (0) | 2023.05.03 |
2798 번 : 블랙잭 (0) | 2023.05.03 |
24313 번 : 알고리즘 수업 - 점근적 표기 1 (0) | 2023.04.29 |
24267 번 : 알고리즘 수업 - 알고리즘의 수행 시간 6 (0) | 2023.04.29 |