셀프 넘버

2021. 5. 9. 14:11·알고리즘 공부/기타

문제

셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다.

양의 정수 n이 주어졌을 때, 이 수를 시작해서 n, d(n), d(d(n)), d(d(d(n))), ...과 같은 무한 수열을 만들 수 있다. 

예를 들어, 33으로 시작한다면 다음 수는 33 + 3 + 3 = 39이고, 그 다음 수는 39 + 3 + 9 = 51, 다음 수는 51 + 5 + 1 = 57이다. 이런식으로 다음과 같은 수열을 만들 수 있다.

33, 39, 51, 57, 69, 84, 96, 111, 114, 120, 123, 129, 141, ...

n을 d(n)의 생성자라고 한다. 위의 수열에서 33은 39의 생성자이고, 39는 51의 생성자, 51은 57의 생성자이다. 생성자가 한 개보다 많은 경우도 있다. 예를 들어, 101은 생성자가 2개(91과 100) 있다. 

생성자가 없는 숫자를 셀프 넘버라고 한다. 100보다 작은 셀프 넘버는 총 13개가 있다. 1, 3, 5, 7, 9, 20, 31, 42, 53, 64, 75, 86, 97

10000보다 작거나 같은 셀프 넘버를 한 줄에 하나씩 출력하는 프로그램을 작성하시오.

입력

입력은 없다.

출력

10,000보다 작거나 같은 셀프 넘버를 한 줄에 하나씩 증가하는 순서로 출력한다.

 

예제 출력 1 복사

1

3

5

7

9

20

31

42

53

64

|

| <-- a lot more numbers

|

9903

9914

9925

9927

9938

9949

9960

9971

9982

9993

 

n=10000
e = []
for i in range(1,n+1):
    e.append(i)
for i in range(1,n+1):
    b=sum(list(map(int,list(str(i)))))
    c = i + b
    if c in e:
        e.remove(c)
    elif c not in e:
        continue

for i in e:
    print(i)


어려운 점은 없었다. 

생각하는 데 좀 시간 쓴듯

 

반응형

'알고리즘 공부 > 기타' 카테고리의 다른 글

[백준] 1193번 분수찾기 - 파이썬  (0) 2021.05.10
[백준] 2292번 벌집 - 파이썬  (0) 2021.05.10
[백준] 1712번 손익분기점 - 파이썬  (0) 2021.05.10
[백준] 1316번 그룹 단어 체커  (0) 2021.05.10
[백준] 2941번 크로아티아 알파벳 - 파이썬  (0) 2021.05.10
'알고리즘 공부/기타' 카테고리의 다른 글
  • [백준] 2292번 벌집 - 파이썬
  • [백준] 1712번 손익분기점 - 파이썬
  • [백준] 1316번 그룹 단어 체커
  • [백준] 2941번 크로아티아 알파벳 - 파이썬
코딩 코딩 코오딩
코딩 코딩 코오딩
  • 코딩 코딩 코오딩
    코딩하는 누누
    코딩 코딩 코오딩
  • 전체
    오늘
    어제
    • 분류 전체보기 (491)
      • 생산성 (2)
        • 인텔리제이 (2)
      • 프로젝트 기록 (14)
        • git (2)
        • spring (3)
        • TestCode (2)
        • spring security (3)
        • 기타 (2)
        • MySQL (0)
        • Cloud (2)
      • 회고 (4)
      • Spring (6)
      • JPA (0)
      • DB (4)
        • MySql (2)
        • Redis (1)
      • Java (7)
        • JSP (1)
      • 잡담 (1)
      • CS (30)
        • 컴퓨팅 사고 (0)
        • 배열 (4)
        • 알고리즘 (8)
        • 메모리 (7)
        • 자료구조 (9)
        • 암호학 (2)
      • opencv (14)
      • AI (56)
        • 머신러닝 (2)
        • 딥러닝 (7)
        • tensorflow (3)
        • 머신러닝(딥러닝) 정리 (21)
        • 강화학습 (7)
        • 논문 읽기 (1)
        • 잡동사니 (1)
        • python AI (13)
        • 선형대수 (1)
        • 확률론 (0)
      • 알고리즘 공부 (177)
        • 그래프 이론 (0)
        • 다익스트라 (4)
        • 위상정렬 (3)
        • 신장트리-크루스칼 알고리즘 (4)
        • 플로이드 워셜 (3)
        • 이진탐색 (9)
        • 백트래킹 (11)
        • 부르드포스 (9)
        • 다이나믹 프로그래밍 (20)
        • BFS & DFS (24)
        • 그리디 (6)
        • 구현 (15)
        • 정렬 (3)
        • 기타 (62)
        • 수학? (1)
      • 코딩 (173)
        • 파이썬(python) (15)
        • c언어 (13)
        • 프로그래머스 lv1 (46)
        • 프로그래머스 lv2 (41)
        • 백준 - c++ (49)
        • Softeer (9)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    코딩문제
    코딩기초스킬
    큐
    다이나믹 프로그래밍
    캘리브레이션
    왜곡보정
    코딩기초
    정렬
    c언어
    코딩
    스택
    if문
    그리디
    백준
    알고리즘
    인접행렬
    코딩테스트
    이미지처리
    프로그래머스
    자료구조
    삽입 정렬
    인접리스트
    BFS
    DFS
    C언어 기초
    선택정렬
    순차 탐색
    에라토슽네스의 체
    n진법 변환
    소수찾기
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코딩 코딩 코오딩
셀프 넘버
상단으로

티스토리툴바