[Baekjoon] # 4375: 1
1
문제
1
2
2와 5로 나누어 떨어지지 않는 정수 n(1 ≤ n ≤ 10000)가 주어졌을 때,
각 자릿수가 모두 1로만 이루어진 n의 배수를 찾는 프로그램을 작성하시오.
예제
- 입력
1 2 3
3 7 9901
- 출력
1 2 3
3 6 12
Solution
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
def get_inputs():
import sys
input_data = sys.stdin.read()
inputs = map(int, input_data.splitlines())
return inputs
def solution(n):
"""
함수는 정수 n을 받아서 n의 배수인 1로만 구성된 가장 작은 숫자를 계산합니다.
계산된 숫자의 자릿수를 반환합니다.
"""
if n == 1:
return 1
target_num = 1
digit = 1
while True:
digit += 1
target_num = target_num * 10 + 1
if target_num % n == 0:
break
return digit
def main():
inputs = get_inputs()
result = [solution(n) for n in inputs]
print(*result, sep="\n", end="")
if __name__ == "__main__":
main()
해결 방법
- While True
loop_count
자리 숫자이면서 모든 자릿수가 1인 정수 생성- 나머지가 0 인지 확인
- 맞으면
break
, 틀리면continue
의사 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
만약 n이 1이라면:
1을 반환한다
변수 target_num을 1로 초기화
변수 digit을 1로 초기화
무한 루프 시작:
digit을 1 증가
target_num을 target_num * 10 + 1로 업데이트
만약 target_num이 n으로 나누어 떨어지면:
루프를 종료
digit을 반환
URL
This post is licensed under CC BY 4.0 by the author.