
소스코드
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 (1) | 2023.02.10 |