Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 정보처리기사실기
- MySQL
- 타입스크립트
- 항해99 2기
- Vue3
- Til
- 자바 자동캐스팅
- 자바 public
- 자바 if문
- 자바 향상된 for문
- java
- 이클립스 DB연동
- 자바 강제 캐스팅
- 프로그래머스
- react with typescript
- 조코딩
- 항해99
- 자바 for문
- 자바 구구단 출력
- 자바
- 자바 스캐너
- 자바 반복문
- TypeScript
- 자바 switch문
- 자바 while문
- 자바 조건문
- react ag grid
- 변수
- 자바 공배수
- 자바 삼항연산자
Archives
- Today
- Total
뇌 채우기 공간
[백준] 2231 분해합 파이썬 풀이 (브루트포스) 본문
문제
- 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합이다.
- 어떤 자연수 M의 분해합이 N인 경우 M을 N을 생성자라고 한다.
- 자연수 N이 주어졌을때 N의 가장 작은 생성자를 구해라
문제풀이
- 주어진 숫자까지 1부터 분해합을 구한다.
- 중간에 분해합이 주어진 숫자와 같아지는 순간 break하고 출력한다.
- 중간에 break될 경우 check를 False에서 True로 바꾼다
- check가 False로 끝까지 남았을 경우 주어진 숫자의 생성자가 없다는 뜻이다.
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
num = int(input())
check = False
for i in range(1,num+1):
generated = 0
splits= []
for j in str(i):
splits.append(int(j))
generated = i + sum(splits)
if generated == num :
check = True
print(i)
break
if not check:
print(0)
|
cs |
728x90
'알고리즘 > 백준 문제풀이' 카테고리의 다른 글
[백준] 1541 잃어버린 괄호 파이썬 풀이 (그리디) (0) | 2021.06.24 |
---|---|
[백준] 1002 피보나치 함수 파이썬 풀이 (동적계획법) (0) | 2021.06.24 |
[백준] 2798 블랙잭 파이썬 풀이 (브루트포스) (0) | 2021.06.24 |
[백준] 1002 터렛 파이썬 풀이 (기본 수학) (0) | 2021.06.24 |
[백준] 2579 계단 오르기 파이썬 풀이 (동적 계획법) (0) | 2021.06.24 |