def solution(hp):
answer = 0
a = 0
b = 0
c = 0
my_dict = {'big' : 5 , 'middle' : 3, 'small' : 1 }
if hp <= 1000 :
a = hp // my_dict['big']
b = (hp - (5*a)) // my_dict['middle']
c = (hp - (5*a) - (3*b)) // my_dict['small']
answer = a + b + c
return answer
최대한 변수가 무엇을 의미하는지 최대한 적고 싶어서 딕셔너리에 추가하였다.
사실 안해도 되는 과정이다.
def solution(hp):
answer = 0
for ant in [5, 3, 1]:
d, hp = divmod(hp, ant)
answer += d
return answer
divmod라는 메서드를 많이 사용한다. 이것을 공부해보도록 하자!
나눗셈을 하다보면 간혹 몫과 나머지를 동시에 구하고 싶을 때가 있는데요. 이럴 때 흔히 생각할 수 있는 방법이 동일한 두 개의 수를 대상으로 // 연산자와 % 연산자를 각각 호출하는 것입니다.
divmod(8, 2)
(4, 0)
divmod(8, 3)
(2, 2)
divmod() 함수는 두 개의 숫자를 인자로 받아, 첫번 째 숫자를 두번 째 숫자로 나눈 몫과 나머지를 튜플(tuple) 형태로 반환하는데요. 결국 divmod() 함수가 하는 일은 다음과 같이 일반 연산자를 사용하여 나타낼 수 있겠습니다.
divmod(x, y) = (x // y, x % y)
변수에 저장??
d , v = divmod(8,3) print(d) print(v) # 2 # 2
우리는 divmod로 몫과 나머지를 동시에 구할 수 있습니다!