알고리즘 문제(SOL)
[백준/4375/파이썬] 1
Mapin
2022. 2. 4. 10:09
https://www.acmicpc.net/problem/4375
4375번: 1
2와 5로 나누어 떨어지지 않는 정수 n(1 ≤ n ≤ 10000)가 주어졌을 때, 1로만 이루어진 n의 배수를 찾는 프로그램을 작성하시오.
www.acmicpc.net
Problem
- 2와 5로 나누어 떨어지지 않는 정수 n(1 ≤ n ≤ 10000)가 주어졌을 때, 1로만 이루어진 n의 배수를 찾는 프로그램을 작성하시오.
조건
- 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, n이 주어진다.
SOL
처음에는 문자열로 1->11->111->1111 와같이 1씩 붙여가면서, 그 수가 해당 숫자로 나누어 지는지 확인해가면서 반복문을 돌아줬음. 근데 시간초과가 발생했다. int -> string의 형변환은 보통 O(len(str))으로 발생한다. (사실, len(str)이라도 가능할거 같았는데, 왜 안되는지 잘 모르겠다)
str1 = "123456"
a=0
for s in str1:
a = a*10+s
그래서, 숫자로 구현해줬더니, 맞았다. 흠.. 아마 len(num)도 N이 걸리니까 그런거 같기도한데.. 모르겠음!
import sys
input =sys.stdin.readline
while True:
try:
N=int(input().rstrip())
except:
break
num=0
i=1
while True:
num=num*10+1
if num%N==0:
print(i)
break
i+=1