풀이
적당히 큰 수까지 어떻게 잘 돌려주면 된다.
코드
#include <cstdio>
#include <cstring>
#include <algorithm>
int n, ans, cnt[10];
int main() {
scanf("%d", &n);
for (int i = 1; i < std::min(n, 98765); i++) {
memset(cnt, 0, sizeof(cnt));
int a = i, b = n - i, flag = 1;
while (a) cnt[a % 10]++, a /= 10;
while (b) cnt[b % 10]++, b /= 10;
for (int j = 0; j <= 9; j++) if (cnt[j] > 1) flag = 0;
if (flag) {
printf("%d + %d", i, n - i);
return 0;
}
}
puts("-1");
return 0;
}
아무말
백준, 백준 온라인 저지, BOJ, Baekjoon Online Judge, C, C++, 씨, 씨쁠쁠, JAVA, algorithm, 자바, 알고리즘, 자료구조, 문제, 문제 풀이, 풀이