티스토리 뷰
728x90
반응형
문제
코드
a = int(input()) # a의 가장 작은 생성자를 구하시오
result = 0
for i in range(a): # 0 부터 a까지 for문 돌음
result = i # 이전값 출력하기 위해서 저장해둠
str_i = str(i) # 자릿수를 쉽게 더하기 위해 문자열로 변환
for j in str_i:
i += int(j) # ex) i = 198 + 1 + 9 + 8
if i == a: # i 값이 입력값과 똑같다면
print(result) # 저장해둔 값 출력
break
else: # for에서 break가 한번도 안걸렸다면 생성자가 없는거기 떄문에 0출력
print(0)
코드설명
a가 주어졌을때 a의 가장 작은 생성자를 출력해야하는 문제이다.
a의 생성자는 a보다 작기 때문에 for문을 a까지 돌려서 생성자를 찾는다.
i를 분해합 진행하기위해 i값을 result에 저장한후 분해합을 진행한다.
분해합을 진행한뒤 i가 입력값 a랑 같다면 result에 저장된 값이 생성자이기 때문에 result를 출력해주면 된다.
for문이 break에 한번도 안걸렸다면 생성자가 없는경우이기 때문에 0을 출력해준다.
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 11866번 요세푸스 문제 0 (Python) (0) | 2021.03.16 |
---|---|
[백준] 1541번 잃어버린 괄호 (Python) (0) | 2021.03.16 |
[백준] 2798번 블랙잭 (Python) (1) | 2021.03.15 |
[백준] 2108번 통계학 (Python) (0) | 2021.03.15 |
[백준] 1260번 DFS와 BFS (Python) (0) | 2021.03.14 |
댓글