관리 메뉴

솜씨좋은장씨

[BaekJoon] 4375번 : 1 (Python) 본문

Programming/코딩 1일 1문제

[BaekJoon] 4375번 : 1 (Python)

솜씨좋은장씨 2021. 9. 30. 00:39
728x90
반응형

코딩 1일 1문제! 오늘의 문제는 백준의 4375번 1 입니다.

 

4375번: 1

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

www.acmicpc.net

👨🏻‍💻 문제 풀이

입력받은 숫자의 배수이면서 1로만 이루어진 숫자의 자리수를 구하는 문제입니다.

입력은 while과 try - except EOFError를 활용하여 입력 받습니다.

while True:
    try:
        num = int(input())
        print(one(num))
    except EOFError:
        break

그럼 temp에 1을 하나씩 추가하면서 이 temp의 숫자가 입력받은 숫자로 나누어지는지 확인하고

나누어질때 temp의 자리수를 출력하도록 하면됩니다.

나누어지는 것을 확인할때 1을 계속 붙인 temp를 int형으로 변환해야하는데

C언어에서는 int형이 커버할 수 있는 숫자의 범위가 있기 때문에 오류가 날 수 있지만

Python에서는 엄청 큰 수도 int가 커버할 수 있습니다.

temp = '1'
answer = 0
    
while True:
    if int(temp) % num == 0:
        answer = len(temp)
        break
    temp += '1'

전체 코드는 아래를 참고해주세요.

👨🏻‍💻 코드 ( Solution )

def one(num):
    temp = '1'
    answer = 0
    
    while True:
        if int(temp) % num == 0:
            answer = len(temp)
            break
        temp += '1'
        
    return answer

if __name__ == "__main__":
    while True:
        try:
            num = int(input())
            print(one(num))
        except EOFError:
            break
 

GitHub - SOMJANG/CODINGTEST_PRACTICE: 1일 1문제 since 2020.02.07

1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTICE development by creating an account on GitHub.

github.com

Comments