컴퓨터 공부/🐍 Python

몫과 나머지 - divmod

letzgorats 2023. 2. 23. 15:50

알고리즘 문제를 풀 때, 정수를 나눈 몫과 나머지를 구해야 할 때면, 

보통 아래와 같은 방법으로 구합니다.

 

ex) 29을 3으로 나눈 몫과 나머지를 구해야 하는 경우

 

a = 29
b = 3
print(a//b, a%b)  # 9, 2

 

하지만, 파이썬에서는 divmod와 unpacking 기능이 있는데 divmod를 사용하면 아래와 같이 간편하게 몫과 나머지를 구할 수 있습니다!

divmod는 한번에 몫과 나머지를 반환해주는 파이썬 내부 함수에요!

a = 29
b = 3
print(*divmod(a, b))	# 9 2

 

 divmod를 사용할 때 주의할 점◆

 

- 무조건 divmod를 사용하는 것이 좋은 것은 아닙니다! 가독성이나, 팀의 코드 스타일에 따라서, 근본적인 //, % 의 방법으로 쓰는게 더 좋을 수 있습니다.

그리고, divmod는 큰 숫자를 다룰 때 성능이 좋지, 작은 숫자를 다룰 때는 a//b, a%b 와 같이 쓰는게 더 낫다고 하네요!

 

둘의 퍼포먼스 차이에 관련해서는 Stack Overflow 질문을 참고해주세요.

이상으로, 파이썬에서 몫과 나머지 - divmod 방법을 알아봤습니다

반응형