새벽_나그네
12시 지난 새벽
새벽_나그네
전체 방문자
오늘
어제
  • 분류 전체보기
    • TIL
    • DevLog
    • Algorithm
    • ComputerScience
    • etc

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • AI트랙
  • 코딩프로젝트
  • 자기주도학습
  • portfolio
  • til
  • 내일배움카드
  • Python
  • 국비지원
  • 프로그래머스
  • TodayILearned
  • 코딩
  • 개발일지
  • Github
  • 스파르타코딩클럽
  • 코린이
  • 내일배움캠프
  • docker
  • machine learning
  • Selenium 4
  • 내일배움단

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
새벽_나그네

12시 지난 새벽

Algorithm

[백준_2231] 분해합

2022. 5. 14. 02:00

문제 보기: https://www.acmicpc.net/problem/2231

 

2231번: 분해합

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

www.acmicpc.net

문제

어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 된다. 따라서 245는 256의 생성자가 된다. 물론, 어떤 자연수의 경우에는 생성자가 없을 수도 있다. 반대로, 생성자가 여러 개인 자연수도 있을 수 있다.

자연수 N이 주어졌을 때, N의 가장 작은 생성자를 구해내는 프로그램을 작성하시오.

 

입력

첫째 줄에 자연수 N(1 ≤ N ≤ 1,000,000)이 주어진다.

출력

첫째 줄에 답을 출력한다. 생성자가 없는 경우에는 0을 출력한다.

 

풀이 과정

 

 

코드

N = int(input())
lists = []

for i in range(N, 0, -1):
    temp = str(i)
    temp2 = i
    for j in temp:
        temp2 += int(j)
    if temp2 == N:
        lists.append(int(temp))
if len(lists) > 0:
    print(min(lists))
else:
    print(0)
저작자표시 비영리 변경금지 (새창열림)

'Algorithm' 카테고리의 다른 글

[백준_11866] 요세푸스 문제 0  (0) 2022.05.17
[백준_1003] 피보나치 함수  (0) 2022.05.15
[백준_2798] 블랙잭  (0) 2022.05.13
[백준_1002] 터렛  (0) 2022.05.12
[백준_2579] 계단 오르기  (0) 2022.05.11
    'Algorithm' 카테고리의 다른 글
    • [백준_11866] 요세푸스 문제 0
    • [백준_1003] 피보나치 함수
    • [백준_2798] 블랙잭
    • [백준_1002] 터렛
    새벽_나그네
    새벽_나그네
    IT, 프로그래밍, 정보, 스마트스토어

    티스토리툴바