본문 바로가기
온라인저지

[BOJ] 4673번: 셀프 넘버

by plzfday 2018. 4. 24.

링크 : https://www.acmicpc.net/problem/4673


독해력이 딸려서 그런지... 사실 처음에 보고 이해를 못했다. 그러니 당연히 코드를 못 짰는데 어쨌든 d(N)은 N의 각 자릿수 합 + N이고 n을 d(n)의 생성자라고 한다.

33은 39의 생성자가 될 수 있는 건데 생성자들이 없는 수가 셀프 넘버다.

1, 3, 5, 7 ... 같은 수들인데 어떤 n으로도 d(n) = 1, 3, 5, 7 ... 을 만들어 낼 수 없다는 말이다. 

그래서 난 10,000까지 반복문을 돌리면서 d(i)값을 배열 인덱스에 넣어줬다. (배열의 장점이 여기서 나올 수 있다...)
지금보니 해쉬 비슷하게 생기긴 했다 ㅋㅋㅋ


pseudo code로 볼때 array[d(i)] = true, if(array[i] == false) -> 셀프 넘버라는 말인 거다!

ps. bool배열을 쓰는 게 메모리를 충분히 줄일 수 있다.

'온라인저지' 카테고리의 다른 글

[BOJ] 2447번: 별찍기 - 10  (0) 2018.05.15
[BOJ] 1991번: 트리 순회  (0) 2018.05.11
[BOJ] 1009번: 분산처리  (0) 2018.05.05
[BOJ] 14867번: 물통  (0) 2018.04.09
[BOJ] 14697번: 방 배정하기  (0) 2018.04.09
[BOJ] 14696번: 딱지놀이  (0) 2018.04.09

댓글