반응형

 

안녕하세요 Jin's 입니다.

 

최근에 리눅스 마스터 2급 준비한다고, 시험 끝났다는 마음에 또 한참을 놀다가 돌아왔습니다!

 

백준 알고리즘의 함수 중 셀프 넘버 ( 문제 번호 : 4673)의 소스입니다.

 

 

 

Java와 Python 두가지 버전 소스입니다.

 

1) JAVA

   * all_set의 숫자 정의도 for문에서 동시에 진행

import java.util.HashSet;
import java.util.Iterator;

public class Main {

	public static void main(String[] args) {
		HashSet<Integer> all_set = new HashSet<Integer>();
		HashSet<Integer> generate_set = new HashSet<Integer>();
		for(int i=1; i<10001; i++){
			int sum = i;
			all_set.add(i);
			String num = String.valueOf(i);
			for(int j=0; j<num.length(); j++){
				sum += Integer.parseInt(String.valueOf(num.charAt(j)));
			}
			generate_set.add(sum);	
		}
		all_set.removeAll(generate_set);
		
		Iterator result = all_set.iterator();
		while(result.hasNext()){
			System.out.println(result.next());
		}
	}
}

 

2) PYTHON

   * 모든 숫자를 set으로 넣어둔 뒤 생성자들을 찾은 뒤 빼주면 셀프 넘버!

all_set = set(range(1, 10001))
generate_set = set()

for i in range(1, 10001):
    for j in str(i):
        i += int(j)
    generate_set.add(i)

self_num = all_set - generate_set
for k in sorted(self_num):
    print(k)

 

여러분도 한번 풀어보세요!

 

반응형

+ Recent posts