본문 바로가기

Algorithm/Math

(Python) - 백준(BOJ) 16428번 : A/B - 3

반응형

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

 

16428번: A/B - 3

첫째 줄에 A와 B가 주어진다. (-1010000 ≤ A, B ≤ 1010000, B ≠ 0)

www.acmicpc.net

큰 수에 대해 나눗셈 연산을 구현하는 문제였습니다.

 

풀이방법

파이썬은 기본적으로 큰 수(long long 범위 초과하는)의 사칙연산을 지원합니다. 두 가지 방법으로 구현하는 법이 있습니다.

 

1. 그냥 나눠 몫과 나머지를 구하는 방법 : 기본으로 지원해주므로 양수 / 음수인 경우에만 if문으로 처리하는 것 외에 몫을 c, 나머지를 d변수에 저장해 출력합니다.

 

2. 함수 이용 : divmod(정수1,정수2)함수를 이용하게 되면 정수1을 2로나눈 몫과 나머지가 튜플 형태로 반환됩니다. 이를 이용해 답을 출력합니다.

 

Code

방법 1

a, b = map(int,input().split())
c, d = a//b, a%b
if a != 0 and d < 0:
    c, d = c+1, d-b
print(c)
print(d)

 

방법2

a, b = map(int, input().split())
c, d = divmod(a, b)
if a != 0 and d < 0:
    c, d = c+1, d-b
print(c)
print(d)