https://www.acmicpc.net/problem/2231
0부터 N까지 탐색하라고 만든 문제는 아니겠지...라고 생각은 했지만 마땅히 좋은 방법이 생각나지 않았다.
비효율적이어도 나의 현 실력으로 풀 수 있는 방법으로 접근해보자하고 0부터 N까지 탐색하는 법으로 코드를 짰다.
N = int(input())
result = 0
for i in range(N): # 0부터 N까지 순회
result = i
str_i = str(i) # 자릿수 문자열로 변환
for j in str_i: #현재 값을 이루는 각 자릿수에 대해 반복
i += int(j)
if i == N:
print(result)
break
else: # 생성자가 없을 때는 0 출력
print(0)
확실히 시간이 오래 걸렸다.
간결하게 코드를 짠 분이 있어 참고하면 좋을 것 같다.
https://wondytyahng.tistory.com/entry/%EB%B0%B1%EC%A4%80-2231-%EB%B6%84%ED%95%B4%ED%95%A9
[BaekJoon] 백준 2231 분해합 (Python / 파이썬)
BaekJoon 백준 BOJ 2231 분해합 문제는 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자릿수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 할 때 생성
wondytyahng.tistory.com
'프로그래머스, 백준' 카테고리의 다른 글
백준 1932번 정수 삼각형 (0) | 2024.09.25 |
---|---|
백준 2798번 블랙잭 (0) | 2024.05.08 |
백준 9095번 1,2,3 더하기 (1) | 2024.05.01 |
백준 2775번 부녀회장이 될테야 (1) | 2024.05.01 |
백준 2629번 양팔저울 (0) | 2024.04.02 |