728x90
https://www.acmicpc.net/problem/4673
for문을 두번 돌면서 각 숫자로 하여금 생성될 수 있는 "셀프 넘버가 아닌 것" 들을 구해서 저장한다.
2개의 for문을 통해, 셀프 넘버가 아닌 것들을 True로 바꿔서 False인 것들(=셀프 넘버)만 출력해주면 된다.
set을 이용한 깔끔한 코드도 있다고 하니, 문제를 다 풀고 나서 찾아보시길!
import sys
import math
from collections import deque
#sys.setrecursionlimit(10**6)
input = sys.stdin.readline
d = [0 for i in range(10001)]
sn = [False for i in range(20000)]
for i in range(1,10001):
num = i
s = str(i)
for j in range(len(s)):
num+=int(s[j])
d[i] = num
for i in range(1,10001):
num = d[i]
sn[num]= True
for i in range(1,10001):
if sn[i]==False:
print(i)
728x90
'알고리즘 > 백준(BOJ)' 카테고리의 다른 글
[백준/파이썬] 1062번 가르침 (0) | 2023.01.27 |
---|---|
[백준/파이썬] 13023번 ABCDE (0) | 2023.01.25 |
[백준/파이썬] 27211번 도넛 행성 (0) | 2023.01.20 |
[백준/파이썬] 12100번 2048 (0) | 2023.01.16 |
[백준/파이썬] 13904번 과제 (0) | 2023.01.10 |