본문 바로가기
짱구 굴리기 (Q) -

[백준 4673] 셀프넘버

by skwzz 2019. 1. 22.


출처 : https://www.acmicpc.net/problem/4673


소스코드


public class Q4673 {
	static int[] checker = new int[10001];
	
	public static void main(String[] args) {
		
		for(int i=1; i<=10000; i++) {
			selfNumberFunc(i);
		}
		
		for(int i=1; i<checker.length; i++) {
			if(checker[i]==0) {
				System.out.println(i);
			}
		}
		
	}
	
	static void selfNumberFunc(int n) {
		int nsf = 0;	//not self number
		nsf += n;
		
		while(n!=0) {
			nsf += n%10;
			n/=10;
		}
		if(nsf<=10000) {
			checker[nsf] = 1;
		}
	}
}

그냥 첨부터 끝까지 돌리면서 체크했습니다

돌리고 다른분들 코드를 보니까 속도를 위해 StringBuilder 를 사용하는부분은 제가 생각하도고 그냥 빨리 풀고 넘겨야지 해서 그랬지만,

메모리를 위해 처음에 체크용 배열을 생성 배열 크기를 처음부터 최대 셀프넘버를 계산해 크기를 잡아주는 부분은 

잘 배웠씁니다!

'짱구 굴리기 (Q) - ' 카테고리의 다른 글

[백준 4344] 평균은 넘겠지  (0) 2019.01.23
[백준 1546] 평균  (0) 2019.01.23
[백준 11718] 그대로 출력하기  (0) 2019.01.22
[백준 2675] 문자열 반복  (0) 2019.01.19
[백준 2577] 숫자의 개수  (0) 2019.01.18