[백준] 2231번 - 분해합 (파이썬)

2022. 8. 16. 21:01·🎲 알고리즘 공부/백준

> 

[문제]

어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다.

어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 된다.

따라서 245는 256의 생성자가 된다. 물론, 어떤 자연수의 경우에는 생성자가 없을 수도 있다. 반대로, 생성자가 여러 개인 자연수도 있을 수 있다.

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

 

입출력 예시

 

 

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 = int(input())
answer = 0

for num in range(1,n):
    tmp_list = list(map(int,str(num)))
    if sum(tmp_list) + num == n :
        answer = num
        break

print(answer)

> 핵심 : 자릿수 분리하기

     

     

🍦 코드 설명 (실행 순서대로 나열)

# main

n = int(input())
answer = 0

1. n을 입력받는다.

 - n : 주어진 수 (n의 생성자를 찾아야함)

 * 그 외 변수

 - answer : n의 가장 작은 생성자 or 0 이 들어갈 변수

 

 

@ for문 (2번~4번)

for num in range(1,n):
    tmp_list = list(map(int,str(num)))
    if sum(tmp_list) + num == n :
        answer = num
        break

2. for문을 실행한다. (1부터 n-1까지)

3. num의 자릿수를 각각 분리한 후 tmp_list에 나눠담는다.

 - ex) num = 36  => tmp_list=[3,6]

4. 만약 tmp_list의 합계 + num 값이 n과 같다면, answer에 num을 넣은 후 break 한다.

 

print(answer)

5. answer을 출력한다.


​끝~

 

⭐ 느낀점

> 고생했따! 이 문제는 좀 어려울 것 같았는데 풀려서 기분이 아주 좋다. 처음에는 문제 자체를 이해하지 못해서 좀 헤맬뻔 했으나~~ 잘 극복했다. 아주 잘했다! 

'🎲 알고리즘 공부 > 백준' 카테고리의 다른 글

[백준] 10886번 - 0 = not cute / 1 = cute (파이썬)  (0) 2022.08.20
[백준] 2750번 - 수 정렬하기 (파이썬)  (0) 2022.08.19
[백준] 25304번 - 영수증 (파이썬)  (0) 2022.08.15
[백준] 3003번 - 킹, 퀸, 룩, 비숍, 나이트, 폰 (파이썬)  (0) 2022.08.14
[백준] 10156번 - 과자 (파이썬)  (0) 2022.08.13
'🎲 알고리즘 공부/백준' 카테고리의 다른 글
  • [백준] 10886번 - 0 = not cute / 1 = cute (파이썬)
  • [백준] 2750번 - 수 정렬하기 (파이썬)
  • [백준] 25304번 - 영수증 (파이썬)
  • [백준] 3003번 - 킹, 퀸, 룩, 비숍, 나이트, 폰 (파이썬)
듬듬
듬듬
  • 듬듬
    두드림
    듬듬
  • 전체
    오늘
    어제
    • 분류 전체보기 (280)
      • 📑 신입일기 (35)
      • 🍪 Web (1)
        • angular (1)
        • JavaScript (0)
      • 🧩 Node.js 공부 (2)
      • 🎲 알고리즘 공부 (192)
        • 프로그래머스 (76)
        • 백준 (96)
        • 코드업 (19)
      • 🎨 Tistory Customizing (1)
      • 💌 일상 (12)
        • 일상 (5)
        • 기록 (7)
      • 📜 자격증 (2)
        • 정보처리기사 (2)
      • 📗 spring boot 공부 (9)
      • 학교 공부 (20)
        • ICT 개론 (14)
        • 리눅스 (6)
      • ChatGPT 랑 놀기 (0)
  • 블로그 메뉴

    • 홈
    • 방명록
    • 글쓰기
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    일기
    피보나치수
    행렬덧셈
    코린이
    파이썬
    프로그래머스
    연습문제
    스프링부트
    코드업
    충무로
    코민이
    폰켓몬
    티스토리챌린지
    코테
    찬양추천
    nodejs
    백준
    오블완
    스프링 부트
    codeup
    오버워치
    카카오
    6월 목표
    정처기
    신입일기
    정보처리기사
    50문답
    BOJ
    til
    컨텐더스
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
듬듬
[백준] 2231번 - 분해합 (파이썬)
상단으로

티스토리툴바