[Baekjoon Online Judge] 백준 4673번 셀프 넘버
(Python)
(글쓴날 : 2020.02.29)
* Baekjoon Online Judge, 백준 4673번 문제 Python 언어 풀이입니다.
* 소스 코드의 저작권은 글쓴이에게 있습니다.
백준 4673번 셀프 넘버
1) 문제
문제 링크 : https://www.acmicpc.net/problem/4673
2) 풀이 과정
10000보다 작거나 같은 셀프 넘버를 출력하는 문제입니다.
셀프 넘버란 1949년 인도 수학자 D.R. Kaprekar가 이름 붙인 수이며 생성자라는 특정 규칙으로 만들 수 없는 수를 뜻한다고 합니다.
생성자의 규칙은 양의 정수 n이 있을 때 n 그 자체와 n의 각 자리수의 합을 더하는 것입니다.
따라서, 1부터 10000까지의 숫자 중에서 생성자로 만들 수 없는 숫자를 출력해 주시면 되겠고,
저의 경우, 1부터 10000까지의 불(True, False) 값을 담을 리스트를 만들고 해당 숫자가 셀프 넘버인지 아닌지 판별하는 반복문을 돌려 문제를 해결하였습니다.
3) 코드
* Python 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
arr = []
i = 0
while i <= 10000:
arr.append(True)
i += 1
i = 1
while i < 10000:
if i < 10:
arr[i + i] = False
elif i >= 10 and i < 100:
arr[i + int(str(i)[0]) + int(str(i)[1])] = False
elif i >= 100 and i < 1000:
arr[i + int(str(i)[0]) + int(str(i)[1]) + int(str(i)[2])] = False
else:
temp = i + int(str(i)[0]) + int(str(i)[1]) + int(str(i)[2]) + int(str(i)[3])
if temp <= 10000:
arr[temp] = False
i += 1
for i in range(1, len(arr)):
if arr[i]:
print(i)
|
'Deprecated' 카테고리의 다른 글
[CSS] 레이아웃 height 100%로 동작하게 하는 법 (2) | 2020.03.01 |
---|---|
[Baekjoon Online Judge] 백준 1065번 한수(Python) (2) | 2020.02.29 |
[Baekjoon Online Judge] 백준 15596번 정수 N개의 합(Python) (0) | 2020.02.29 |
[Baekjoon Online Judge] 백준 4344번 평균은 넘겠지(Python) (0) | 2020.02.29 |
[Baekjoon Online Judge] 백준 8958번 OX퀴즈(Python) (0) | 2020.02.29 |