본문 바로가기

PS/백준

[BOJ] 백준 2231 분해합 (Swift)

반응형

문제

https://www.acmicpc.net/problem/2231

 

2231번: 분해합

어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이

www.acmicpc.net

풀이

이 문제는 1 ~ n 까지 하나씩 확인해보면서 n의 생성자가 될 수 있는 수를 출력해주면 됩니다.
즉, 완전탐색으로 풀이할 수 있습니다.
각 자리수의 합은 수를 Int 배열로 만들어준 후, reduce를 사용해 합을 구할 수 있습니다.

n이 최대 1,000,000이고 자리수는 최대 7이므로 최악의 경우 약 7,000,000의 연산을 하게 될 것입니다.

시간 제한이 2초 이므로 시간은 충분합니다.

소스코드

후기

모든 경우를 시도하면 쉽게 풀 수 있는 문제입니다.

반응형