https://www.acmicpc.net/problem/4673
4673번: 셀프 넘버
셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때,
www.acmicpc.net
- 집합 함수 set() 이용
- 집합 간 연산 (차집합) 사용 -> 1부터 10000까지의 숫자들의 집합에서 생성자가 있는 집합을 구해 빼준다
numbers = set(range(1, 10000))
remove_set = set()
for num in numbers:
for n in str(num):
num += int(n)
remove_set.add(num)
self_numbers = numbers - remove_set
for self_num in sorted(self_numbers):
print(self_num)
'알고리즘 > 백준 풀이' 카테고리의 다른 글
[백준/Python] #1260 : DFS와 BFS - DFS/BFS (1) | 2023.04.13 |
---|---|
[백준/Python] #2941 : 크로아티아 알파벳 - 구현 (0) | 2023.03.23 |
[백준/Python] #13305 : 주유소 - 그리디 (0) | 2023.03.23 |
<미해결> [백준/Python] #1316 : 그룹 단어 체커 - 구현 (0) | 2023.03.23 |
[백준/Python] #1931 : 회의실 배정 - 그리디 (0) | 2023.03.19 |
https://www.acmicpc.net/problem/4673
4673번: 셀프 넘버
셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때,
www.acmicpc.net
- 집합 함수 set() 이용
- 집합 간 연산 (차집합) 사용 -> 1부터 10000까지의 숫자들의 집합에서 생성자가 있는 집합을 구해 빼준다
numbers = set(range(1, 10000))
remove_set = set()
for num in numbers:
for n in str(num):
num += int(n)
remove_set.add(num)
self_numbers = numbers - remove_set
for self_num in sorted(self_numbers):
print(self_num)
'알고리즘 > 백준 풀이' 카테고리의 다른 글
[백준/Python] #1260 : DFS와 BFS - DFS/BFS (1) | 2023.04.13 |
---|---|
[백준/Python] #2941 : 크로아티아 알파벳 - 구현 (0) | 2023.03.23 |
[백준/Python] #13305 : 주유소 - 그리디 (0) | 2023.03.23 |
<미해결> [백준/Python] #1316 : 그룹 단어 체커 - 구현 (0) | 2023.03.23 |
[백준/Python] #1931 : 회의실 배정 - 그리디 (0) | 2023.03.19 |