본문 바로가기

알고리즘/백준 문제 풀이

[Python] 4375번 1

728x90

https://www.acmicpc.net/problem/4375

 

4375번: 1

2와 5로 나누어 떨어지지 않는 정수 n(1 ≤ n ≤ 10000)가 주어졌을 때, 1로만 이루어진 n의 배수를 찾는 프로그램을 작성하시오.

www.acmicpc.net


 

22/10/08

 

 

처음에는 특별한 규칙이 있는 문제인 줄 알고 괜히 시간을 오래 썼었다.

 

알고 보니 그냥 단순한 브루트 포스라는 것을 알고 그냥 깡 구현하여 문제를 풀었다.


 

문제 접근 방식:

 

 

어떤 정수가 주어지면, 그에 맞춰서 가장 작은 1로만 구성된 그 정수의 배수의 자릿수를 출력하는 것이 우리의 목표이다.

 

때문에 파이썬의 큰 수 연산에 대한 장점을 살려서 10을 곱하고 1을 하는 연산을 반복하다 입력받은 N으로 나눠질 때, 그 자리 수를 출력하도록 단순 구현했다.


아래는 내가 위의 접근 방식과 같이 작성한 파이썬 코드이다. 더보기를 누르면 확인할 수 있다.

더보기
# 4375번 1
# 수학, 정수론
'''
접근 방법:
2와 5로 나누어 떨어지지 않는 정수는 끝자리가 항상 1, 3, 7, 9로 끝난다.
걍 깡구현 해보자
'''
while True:
    try:
        n = int(input())
        k = 1
        only_one = 1
        while True:
            if only_one % n == 0:
                print(k)
                break
            else:
                only_one *= 10
                only_one += 1
                k += 1
    except:
        break