[백준/파이썬] 15792번 A/B - 2 풀이

업데이트:



문제 정보


풀이

문제

두 정수 A와 B를 입력받은 다음, A/B를 출력하는 프로그램을 작성하시오.

  • 자세한 문제 및 입출력 예제는 상단의 문제 출처(백준 홈페이지)를 참조해주세요

코드

A, B = map(int, input().split())

i = 0
result = (str(A//B)+".")
d = A%B
while i < 1000:
    d *= 10
    m = d//B
    result += str(m)
    d %= B
    if d == 0:
        break
    i += 1
print(result)

설명

Big Integer의 연산에 관한 문제입니다.

일반적으로, 자료형이 너무 커지면 오버플로우가 일어나겠지만, 파이썬은 기본적으로 Big Integer를 지원합니다. 따라서, 그냥 int형으로 입력을 받을 수 있습니다.

다만, 역시 연산속도는 매우 느려지게됩니다.

기본적인 방법으로는 주어진 시간 내에 해결이 불가능함과 더불어, 단순히 연산해주면 정규화된 표현식으로 답이 나올 수 있기 때문에, 구간을 나누어 해결해줍니다.

소숫점 아래 계산은 몫 나눗셈으로 해결합니다.



댓글남기기