본문 바로가기
✅ 문제풀이

BOJ - 4375번 1

by dogfoot.dev 2021. 9. 18.
728x90
728x90

BOJ-백준 4375번 1

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

 

4375번: 1

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

www.acmicpc.net

 

문제

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

 

✅ Python 정답 코드 입니다. 더보기 클릭!

더보기
import sys
input = sys.stdin.readline

nums = []
while 1:
  try:
    nums.append(int(input()))
  except:
    break

for n in nums:
  allowed = 1
  allowed_len = 1
  while allowed%n != 0:
    allowed+=10**(allowed_len)
    allowed_len+=1
  print(allowed_len)

 

📌 해설

1, 11, 111, 1111, 11111 ...  과 같이 1로만 이루어진 숫자가 n의 배수 중에 있는지 확인하고

 가장 작은 수(1, 11, 111 ...)의 자리수를 출력합니다. 

 

🚩주의

n 의 배수 중에서 1, 11, 111, 1111 ...을 찾는 것이 아닌 

1, 11, 111, 1111... 이 n으로 나누어 지는지 확인해야 연산 과정을 줄일 수 있습니다.  

 

import sys
input = sys.stdin.readline

nums = []
while 1:
  try:
    nums.append(int(input()))
  except:
    break

1. n 들을 저장할 list 변수 nums를 선언합니다. nums의 개수는 주어지지 않고, 많은 양을 입력받을 수 있기 때문에

sys,stdin.readline을 사용했습니다. 

 

 

for n in nums:
  allowed = 1
  allowed_len = 1
  while allowed%n != 0:
    allowed+=10**(allowed_len)
    allowed_len+=1
  print(allowed_len)

2. allowed  는 1,11,111,1111 ... 입니다. 1부터 시작하여 while문을 돌때 마다 11, 111, 1111... 이 됩니다. 

3. allowed 가 n 의 배수가 아니라면 allowed의 길이를 1 더해 줍니다.

4. allowed가 n 의 배수라면 allowed의 길이를 출력합니다. 

 

::

 

 

 

 

728x90
반응형

'✅ 문제풀이' 카테고리의 다른 글

BOJ-백준 6588번 골드바흐의 추측  (0) 2021.09.20
BOJ-백준 17425번 약수의 합  (0) 2021.09.18
BOJ-17427번 약수의 합 2  (0) 2021.09.18
BOJ-10430번 나머지  (0) 2021.09.17
BOJ-백준 1697번 숨바꼭질  (0) 2021.09.08