지구정복

[수학, 구현] 백준 - 셀프넘버 본문

데이터 엔지니어링 정복/Algorithm

[수학, 구현] 백준 - 셀프넘버

eeaarrtthh 2021. 7. 9. 16:13
728x90
반응형

-문제

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

 

 

-자바

package implementation;

import java.util.ArrayList;

public class SelfNumber1 {
	
	private static ArrayList<Integer> arr = new ArrayList<Integer>(10000);
	private static int num;
	private static int tmp;
	
	public static void main(String[] args) {
		for( int i=1; i<=10000; i++ ) arr.add( i );
		
		for( int i=1; i<=10000; i++ ) {
			num = 0; tmp = 0;
			
			String end = i+"";
			for( int j=0; j<end.length(); j++ ) {
				tmp += end.charAt(j)-'0';
			}
			num = i+tmp;
			
			try {
				arr.remove( arr.indexOf(num) );
			} catch (Exception e) {
				continue;
			}
			
		}
		
		for( int i=0; i<arr.size(); i++ ) {
			System.out.println( arr.get(i) );
		}

	}//main method end
}//class end

 

-파이썬

arr = [ i for i in range(1, 10001)]

for i in range(1, 10001):
    num = 0

    
    tmp = 0
    for j in range( len(str(i)) ):
        tmp += int( str(i)[j] )
    num = i + tmp
    try:
        arr.remove(num)
    except:
        continue
    
print( "\n".join( str(a) for a in arr) )
728x90
반응형
Comments