본문 바로가기

Coding test

[백준/4375/파이썬] 1


소스코드

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가 생성이 된다.

마지막 자리에 있는 숫자가 나눠떨어지면 그 숫자를 리턴해주고 결과는 그 숫자의 길이를 출력해주면 된다.