백준 2231번 : 분해합(python)
코드
N = int(input()) if(N>100): t = N-100 #N보다 100 작은 숫자부터 시작 brr = [] for i in range(t,N): ii = i k = len(str(i)) arr=[] a=0 for j in range(k): a = i%10 arr.append(a) i= i//10 brr.append((sum(arr)+ii)) if((sum(arr)+ii)==N): print(ii) break if(brr.count(N)==0): print(0) else: brr = [] for i in range(N): ii = i k = len(str(i)) arr=[] a=0 for j in range(k): a = i%10 arr.append(a) i= i//10 brr.append((sum(arr)+ii)) if((sum(arr)+ii)==N): print(ii) break if(brr.count(N)==0): print(0)
코드가 다른 문제에 비해 길어졌다. 쉽게 푸는 법을 못 찾아서 길게 작성했다. ㅠ
일단 생성자의 특성상 주어진 수와 차이가 많이 나지 않는 수이기 때문에 범위는 100정도로 제한했다. 주어진 수 보다 100작은 수부터 각 자리수와 그 수의 합을 다 계산하여 주어진 수와 같은 경우가 생기면 출력하는 방식으로 코드를 짰다. 아래 쪽 else는 100이하의 수 일때 경우이다.
Author And Source
이 문제에 관하여(백준 2231번 : 분해합(python)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@gogod/백준-2231번-분해합python저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)