소스코드
def one(n):
ones = [1]
i = 1
while (1):
if ones[-1] % n == 0 :
return ones[-1]
else :
ones.append(ones[-1]+10**i)
i += 1
while (1):
try:
n = int(input())
except:
break
print(len(str(one(n))))
알고리즘
n의 배수라는 건 결국 어떤수를 n으로 나눴을때 나머지가 0 이라는 것이다.
따라서 1로만 이루어진 list를 만들어서 ( ones[1,11,111,...])
마지막 숫자 + 10의 배수를 해주면 1로만 이뤄진 list가 생성이 된다.
마지막 자리에 있는 숫자가 나눠떨어지면 그 숫자를 리턴해주고 결과는 그 숫자의 길이를 출력해주면 된다.
'Coding test' 카테고리의 다른 글
[백준/17425/파이썬] 약수의 합 (0) | 2023.02.15 |
---|---|
[백준/17427/파이썬] 약수의 합2 (0) | 2023.02.14 |
[백준/16974/파이썬] 레벨 햄버거 - 재귀 (0) | 2023.02.12 |
[백준/2003/파이썬] 수들의 합2 - brute force (0) | 2023.02.11 |
[백준/1309/파이썬] 동물원 - DP (0) | 2023.02.10 |