Development/알고리즘
[ 백준 알고리즘 ] 4673번 셀프 넘버 (JAVA/python)
Jin’s
2020. 6. 23. 11:56
반응형
안녕하세요 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)
여러분도 한번 풀어보세요!
반응형