반응형
2231번: 분해합
어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이
www.acmicpc.net
Hint
x
Solution
n=int(input())
for i in range(1000000):
result=i
for j in str(i):
result+=int(j)
if result==n:
print(i)
break
if i==999999:
print(0)
해당 코드는 python 3으로
1828ms로 통과했습니다
1,000,000번 까지라 조금 애매했지만
다행히 통과는 되는 코드입니다
위 코드는
0부터 1,000,000까지
오름차순으로 시작하여 가장 낮은 답을 찾아내는 방식입니다
result에 먼저 해당 값을 더하고
그 후에 자릿수에 있는 수들을 더해서
result가 n값인
숫자 i를 찾아내는 알고리즘입니다
또한 i가 999,999가 될 때까지
답을 찾지 못했으면 생성자는 없는 경우이므로
0을 출력합니다
n=int(input())
for i in range(1, n+1):
result=i
for j in str(i):
result+=int(j)
if result==n:
print(i)
break
if i==n:
print(0)
break
추가적으로 해당 코드도 통과하지만
오히려 1860ms로 더 느리게 통과합니다
반응형
'백준(BOJ)' 카테고리의 다른 글
[백준] 2579번 계단 오르기 : 파이썬(python) 설명 (0) | 2021.10.23 |
---|---|
[백준] 11053번 가장 긴 증가하는 부분 수열 : 파이썬(python) 설명 (0) | 2021.10.23 |
[백준] 2579번 문제 풀이 : 파이썬(python) 코드 설명 (0) | 2021.02.17 |
[백준] 3053번 문제 풀이 : 파이썬(python) 코드 설명 (0) | 2021.02.09 |
[백준] 1065번 문제 풀이 : 파이썬(python) 코드 설명 (0) | 2021.02.05 |