유니티3D 프로그래밍
백준 단계별로 풀어보기 : 4673번 문제 (셀프 넘버) 본문
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
sumList라는 함수를 만들고 그 함수 안에는 셀프 넘버가 아닌 값을 찾아내는 로직을 돌린다.
10보다 입력받는 값이 작은 경우는 0을 추가해 줘야 하기 때문에 if문을 작성해서 처리했다.
num_sum에서 입력받은 값 n과 n의 값을 하나씩 분리한 numList의 값들을 더하면 무한수열의 공식이다.
0부터 10000까지가 주어진 조건이므로 countList에 0부터 10000까지의 값들을 집어 넣는다.
무한루프를 통해서 sumList를 돌리고 그 값을 temp라는 곳에 임시로 저장해 둔다.
그 값을 리스트와 비교해서 지우면 남는 것은 무한수열을 통해서 만들어 질 수 없는 값, 즉 생성자가 없는 숫자만 남게된다.
sumList(10000)가 이 조건의 마지막 값을 충족하므로 sumList(10000)의 값에 도달하면 break를 통하여 무한루프에서 빠져나온다.
'Python > 백준' 카테고리의 다른 글
백준 단계별로 풀어보기 : 11654번 문제 (아스키 코드) (0) | 2021.09.13 |
---|---|
백준 단계별로 풀어보기 : 1065번 문제 (한수) (0) | 2021.09.10 |
백준 단계별로 풀어보기 : 15596번 문제 (정수 N개의 합) (0) | 2021.09.09 |
백준 단계별로 풀어보기 : 4344번 문제 (평균은 넘겠지) (0) | 2021.09.09 |
백준 단계별로 풀어보리 : 8958번 문제 (OX퀴즈) (0) | 2021.09.09 |