티스토리 뷰

반응형

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을 사용했다.

 

간단히 한 줄 요약하자면

셀프 넘버 = 전체 수 - 셀프 넘버 아닌 수

 

문자열로 변환하여 index를 사용했다. index로 각 자릿수를 사용해줬다.

 

자세한 건 코드를 통해 확인해보자


 

⊙ 문제 풀이

 

numbers = set(range(1,10001))

notSelfNumbers = set()

for i in range(1,10001):
    for j in str(i): #문자열로하여 인덱스 접근
        i += int(j)
    notSelfNumbers.add(i)

selfNum = numbers - notSelfNumbers

for i in sorted(selfNum):
    print(i)

 


⊙ 결과

 


⊙ 마무리

 

 

NONE

 

좋아요로그인하지 않아도 누를 수 있습니다!

728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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 31
글 보관함