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
- 유데미큐레이션
- Tableau
- 그리디 알고리즘
- 넘파이
- 유데미코리아
- matplotlb
- 유데미
- 판다스
- 데이터드리븐
- 취업부트캠프
- Til
- 스타터스부트캠프
- 데이터시각화
- 태블로
- ndarray
- python
- numpy
- 시각화
- pandas
- 브루트포스 알고리즘
- DataFrame
- 유데미부트캠프
- 정렬
- 데이터프레임
- 코딩테스트
- 백준
- 파이썬
- Leetcode
- 데이터분석
- 부트캠프후기
Archives
- Today
- Total
Diary, Data, IT
[백준] 4673번 셀프 넘버 - Python 본문
[백준] 4673번 셀프 넘버 - Python
4673번: 셀프 넘버
셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때,
www.acmicpc.net
https://www.acmicpc.net/problem/4673
문제
양의 정수 n이 주어질 때, n과 n의 각 자리수를 더하는 함수 d(n)이 있습니다.
예를 들어 d(75) = 75 + 7 + 5 = 87 이며, 75는 87의 생성자라고 합니다.
생성자가 없는 숫자는 '셀프 넘버'라고 할 때, 10000보다 작은 셀프 넘버를 한 줄에 하나씩 출력해주세요.
아이디어
먼저 d(n) 함수와 9999까지의 수를 포함하는 리스트를 만듭니다.
9999까지의 수를 d(n) 함수에 넣어 나온 값을 리스트에서 순서대로 제거하면 생성자가 없는 값들만 남게됩니다.
코드
def self_number(a):
a1 = list(str(a))
a1 = list(map(int, a1))
for i in range(len(a1)):
new_a = a + sum(a1)
return new_a
ans = list(range(0,10000))
for j in range(10000):
num = self_number(j)
if num in ans:
ans.remove(num)
else:
continue;
for k in range(len(ans)):
print(ans[k])
'Coding Test > Baekjoon' 카테고리의 다른 글
| [백준] 17478번 재귀함수가 뭔가요? - Python (0) | 2022.09.15 |
|---|---|
| [백준] 1978번 소수 찾기 - Python (0) | 2022.09.15 |
| [백준] 10610번 30 - Python (0) | 2022.09.08 |
| [백준] 11047번 동전 0 - Python (0) | 2022.09.07 |
| [백준] 11399번 ATM - Python (0) | 2022.09.07 |