Posts 백준 4375 1 파이썬
Post
Cancel

백준 4375 1 파이썬

문제

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

문제해설

처음 문제를 봤을 때 뭔말인가 이해하는데 좀 걸렸다.
예를들어 3이라는 수가 주어지면 3의 배수중에 1로만 이루어진 수를 찾는 것이다.
그 수 중 가장 작은 수를 찾으면 된다. 3의 배수 중 1로만 이루어진 가장 작은 수는 111이다.
그래서 정답은 111의 자릿수인 3이다.

문제풀이

그냥 문제 그대로 구현했다. 다만 c++로 하면 long long 범위를 벗어나기 때문에 python으로 짰다.
1부터 시작해서 10을 곱하고 1을 더해서 그 수가 입력받은 수로 나눠질 수 있는지 확인했다.

이 문제는 eof를 사용해야한다. 파이썬에서 eof는 try except를 사용하면 된다.
백준에서도 가능한 방법이다. except로 eof에러가 나면 break를 걸면 된다.

전체코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
while True:
    try:
        x = int(input())
    except EOFError:
        break
    if x == 1:
        print('1')
        continue
    num = 1
    cnt = 1
    while True:
        num = num * 10 + 1
        cnt += 1
        if (num % x) == 0:
            print(cnt)
            break

백준 2502 떡 먹는 호랑이 c++

백준 7806 GCD! c++

Comments powered by Disqus.