[Gold V] Title: 가지고 노는 1, Time: 196 ms, Memory: 40224 KB -BaekjoonHub

This commit is contained in:
SSUM
2026-02-09 20:48:59 +09:00
parent 44178cfa24
commit 75e364c230
2 changed files with 53 additions and 0 deletions

View File

@@ -0,0 +1,30 @@
# [Gold V] 가지고 노는 1 - 1612
[문제 링크](https://www.acmicpc.net/problem/1612)
### 성능 요약
메모리: 40224 KB, 시간: 196 ms
### 분류
수학, 정수론
### 제출 일자
2026년 2월 9일 20:48:33
### 문제 설명
<p>동물원에서 막 탈출한 원숭이 한 마리가 세상구경을 하고 있다. 이 원숭이는 수를 이리저리 가지고 노는 것을 매우 좋아한다. 그중에서도 1을 가지고 노는 것을 매우매우매우매우매우 좋아한다. 이제 원숭이가 1을 가지고 노는 법을 알아보자.</p>
<p>원숭이는 1만으로 이루어진 수를 매우매우매우매우매우매우매우 좋아한다. 그래서 어떤 자연수 N이 있을 때, N의 배수 중에서 1만으로 이루어진 수가 있을 까 생각하게 되었다. 그리고는 원숭이는 N의 배수 중에서 1만으로 이루어진 수중에 가장 작은 수의 자릿수가 알고 싶어졌다. 하지만 오늘도 역시 멍청한 원숭이는 스스로 계산하지 못하고 여러분에게 도움을 요청했다. 조건에 맞는 가장 작은 수의 자릿수를 구하는 프로그램을 작성하시오.</p>
### 입력
<p>첫째 줄에 자연수 N이 주어진다. N은 1이상 1,000,000이하인 자연수이다.</p>
### 출력
<p>첫째 줄에 N의 배수 중에 1만으로 이루어진 수 중 가장 작은 수의 자릿수를 출력한다. 불가능한 경우는 -1을 출력한다.</p>

View File

@@ -0,0 +1,23 @@
import sys
input = sys.stdin.readline
N = int(input().strip())
if N % 2 == 0 or N % 5 == 0:
print(-1)
sys.exit()
visited = [False] * N
r = 0
k = 0
while True:
r = (r * 10 + 1) % N
k += 1
if r == 0:
print(k)
break
if visited[r]:
print(-1)
break
visited[r] = True