문제풀이
1. 딕셔너리 자료구조를 활용하여 생성자의 개수를 세어줍니다. 딕셔너리 dic의 key는 생성자가 되고, value는 생성자의 개수가 됩니다.
2. 1부터 10000까지의 숫자 n의 d(n)을 구하여, 위의 딕셔너리에서 key d(n)의 value에 1을 더해줍니다.
3. 1부터 10000까지의 숫자들을 key로 하여, value가 0인 값을 출력합니다.
Python Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
import sys
from collections import defaultdict
dic = defaultdict(int)
def d(n):
return n + sum(int(s) for s in str(n))
def main():
for i in range(1,10000):
dic[d(i)] = dic[d(i)]+1
for i in range(1,10000):
if dic[i] ==0:
print(i)
if __name__ == '__main__':
main()
|
cs |
Line 8-9 : 과정 2입니다.
Line 10-11 : 과정 3입니다.
문제링크
4673번: 셀프 넘버
셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때,
www.acmicpc.net
'알고리즘 > 백준' 카테고리의 다른 글
백준 1946 신입 사원 (0) | 2020.12.09 |
---|---|
백준 4344 평균은 넘겠지 Python (0) | 2020.12.09 |
백준 20162 간식 파티 Python (0) | 2020.12.08 |
백준 1149 RGB거리 Python (0) | 2020.12.08 |
백준 1309 동물원 (0) | 2020.12.07 |