출처 : 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 |