개발/Quiz

[codewars] Pete, the baker

Taekyuu 2017. 12. 20. 12:19

문제 링크

https://www.codewars.com/kata/pete-the-baker/train/python


내 답안

def cakes(recipe, available):
return min([available[x] // recipe[x] if x in available else 0 for x in recipe])


available에 key값이 없는 경우를 생각 안 해줘서 처음에 오류가 났었다. 그래서 if를 이용해서 키값이 있는지 찾고 없으면 0을 반환하도록 했는데 

def cakes(recipe, available):
return min(available.get(k, 0)//recipe[k] for k in recipe)

위에 답처럼 딕셔너리의 get 함수를 써서 키값이 없으면 디폴트로 0을 반환하도록 할수도 있었다. 그리고 // 연산은 소수자리를 버리고 정수값만 반환한다.