문제 링크: https://www.acmicpc.net/problem/2231
백준 브루트 포스 2단계 - 2231번 분해합을 풀어보았다.
풀이: 분해합을 1부터 n까지 구해 비교한다.
파이썬의 경우, sum(map(int,str(i)))로 자릿수의 합을 구할 수 있다는 것을 알게 되었다.
C++
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int n;
cin>>n;
for(int i=1;i<n+1;i++)
{
int ii=i;
int check=ii;
while(ii>0)
{
check+=ii%10;
ii/=10;
}
if(check==n)
{
cout<<i;
break;
}
if(i==n) cout<<0;
}
}
Python
n=int(input())
for i in range(1,n+1):
num=sum(map(int,str(i)))+i # 분해합 구하기
if num==n:
print(i)
break
if i==n: # 생성자가 없는 경우
print(0)
Java
'코테용 문제풀이 > 백준' 카테고리의 다른 글
체스판 다시 칠하기 풀이 (0) | 2023.01.06 |
---|---|
덩치 풀이 (0) | 2023.01.06 |
블랙잭 풀이 (0) | 2023.01.06 |
하노이 탑 이동 순서 풀이 (0) | 2023.01.05 |
별 찍기 - 10 풀이 (0) | 2023.01.05 |