문제
2와 5로 나누어 떨어지지 않는 정수 n(1 ≤ n ≤ 10000)가 주어졌을 때, 1로만 이루어진 n의 배수를 찾는 프로그램을 작성하시오.
입력
입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, n이 주어진다.
출력
1로 이루어진 n의 배수 중 가장 작은 수의 자리수를 출력한다.
문제 풀이
정수 n이 주어졌을 때, 1로만 이루어진 n의 배수를 찾는 문제입니다.
처음 문제를 읽었을 때 1로만 이루어진 배수가 뭐지..?
라는 생각이 들었는데 문제 예제를 통해
1, 11, 111, 1111과 같은 수 라는 것을 알 수 있었습니다.
따라서 먼저 1부터 n의 배수인지
n으로 나눈 나머지가 0인지 확인해서 판단해주었습니다.
만약 n의 배수가 아니라면 10을 곱하고 1을 더해주어
1로 이루어진 다음 수를 만들어주었습니다.
다음 수를 만들 때마다 1로 이루어진 수의 자리수가 늘어나므로
자리수를 하나씩 증가시켜주었습니다.
만약 이 과정에서 n의 배수를 찾는다면 반복문이 종료되고
구한 자리수를 출력하도록 해주었습니다.
이때 주의해야 할 점은, 입력이 여러 개의 테스트 케이스로
이루어져 있다는 것입니다.
종료조건이 따로 주어져있지 않으므로
try except를 이용해 예외처리를 해주어 프로그램이 종료되도록 해주었습니다.
My Code
while True:
try:
n = int(input()) # 정수 n
except:
break
num = 1 # 1로만 이루어진 수
count = 1 # 자리수
while True:
if num % n != 0: # n의 배수가 아니라면
num = num * 10 + 1 # 1로만 이루어진 다음 수로 갱신
count += 1 # 자리수 세어줌
else: # n의 배수라면
break # 종료
print(count) # 자리수 출력
'백준(Python) 풀이' 카테고리의 다른 글
백준 17427번. 약수의 합 2 (Python / 파이썬) (0) | 2022.04.29 |
---|---|
백준 1037번. 약수 (Python / 파이썬) (0) | 2022.04.29 |
백준 1764번. 듣보잡 (Python / 파이썬) (0) | 2022.04.28 |
백준 1743번. 음식물 피하기 (Python / 파이썬) (0) | 2022.04.22 |
백준 1926번. 그림 (Python / 파이썬) (0) | 2022.04.22 |
댓글