728x90
반응형
Silver V
# 4673 셀프 넘버
링크 : https://www.acmicpc.net/problem/4673
풀이
def d(n):
text = str(n)
if len(text) == 1:
t = int(text[0]) + int(text[0])
if len(text) == 2:
t = int(text[0]) + int(text[1]) + int(text)
if len(text) == 3:
t = int(text[0]) + int(text[1]) + int(text[2]) + int(text)
if len(text) == 4:
t = int(text[0]) + int(text[1]) + int(text[2]) + int(text[3]) + int(text)
# len(text) == 5인 경우는 이미 결과값을 벗어났으므로 조건문에서 제외했다
if t < 10000:
li[t] = t
# 저장 공간 리스트 만들기
li = [False] * 10000
# d(i)값 li에 저장
for i in range(10000):
d(i)
# 원하는 값 출력(li에 포함되어 있지 않은 수)
for i in range(1, 10000):
if li[i] == False:
print(i)
후기
- 몇번 시도하려 했었는데 지레 겁먹고 도전을 못해왔다. n의 자리수가 1~5일 경우에 대해서만 생각해주면 되기 때문에 처음 예상한 것 보다는 쉽게 풀이할 수 있었다.
'Algorithm Study > Python' 카테고리의 다른 글
[백준 파이썬] # 18870 좌표 압축 (0) | 2022.02.27 |
---|---|
[백준 파이썬] # 1065 한수 (0) | 2022.02.27 |
[백준 파이썬] # 11727 2xn 타일링 2 (0) | 2022.02.26 |
[백준 파이썬] # 11726 2xn 타일링 (0) | 2022.02.26 |
[백준 파이썬] # 1620 나는야 포켓몬 마스터 이다솜 (0) | 2022.02.26 |