BOJ/Python

백준 1075번 나누기 파이썬

띵지니어 2022. 2. 27. 23:23
반응형

https://www.acmicpc.net/problem/1075

 

1075번: 나누기

첫째 줄에 N, 둘째 줄에 F가 주어진다. N은 100보다 크거나 같고, 2,000,000,000보다 작거나 같은 자연수이다. F는 100보다 작거나 같은 자연수이다.

www.acmicpc.net

 

내 답안

N = int(input())
F = int(input())
nature = N
lst = []

while (str(N)[-2:] != '00'):
    N -= 1
    if N%F == 0:
        lst.append(str(N)[-2:])

if len(lst) > 0:
    print(min(lst))
else:
    for i in range(nature, 20000000001):
        if i % F == 0:
            print(str(i)[-2:])
            break
        else:
            i += 1

 

while (str(N)[-2:] != '00'):  # 뒤 두자리수 00 이 될때까지 빼준다.
    N -= 1
    if N%F == 0:
        lst.append(str(N)[-2:])

첫 번째 N의 뒤 두 자릿수가 00이 될 때까지 1씩 빼주면서 F로 나눠서 0이 되는 값을 리스트에 담았다.

( 리스트에 넣은 이유는 최솟값을 구해야 하기 때문에 활용을 하였다. )

 

 

if len(lst) > 0:
    print(min(lst))

그중에 가장 작은 값을 출력해 주면 된다.

 

 

 

else:
    for i in range(nature, 20000000001):
        if i % F == 0:
            print(str(i)[-2:])
            break
        else:
            i += 1

 

하지만 리스트에 아무것도 없을 경우 주어진 숫자(N)에서 1씩 더하면서 0으로 나눠지는 값이 있는지 확인한다.

값이 구해지면 그만 더하고 출력을 하고 break를 걸어 프로그램이 종료되는 알고리즘을 짰다.

반응형
목차(index)