알고리즘 문제 : 3500원의 돈을 가지고있는데, 이 돈을 가지고 슈퍼에서 돈을 하나도 남기지 않고 구매할 수 있는 모든 경우의 수
조회수 607회
3500원의 돈을 가지고있는데, 이 돈을 가지고 슈퍼에서 돈을 하나도 남기지 않고 구매할 수 있는 모든 경우의 수를 구해야합니다.
메뉴로는 크림빵, 새우깡, 콜라가있으며 각 메뉴의 가격은 500원, 700원, 400원입니다.
단 조건으로는 각 메뉴를 적어도 1개씩은 구매를 해야합니다. 이 문제를 어떻게 풀어야할지 도저히 막막해 감이 오지 않습니다.
혹시 답변이 가능하시다면 라인별로 주석으로 설명도 간략하게 달아주시면 정말 이해하는데 도움이 될것같습니다. 답변달아주시면 해당 코드를 가지고 문제를 조금 수정해서 다시 공부를 해보려고합니다.
작성 언어는 파이썬입니다.
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
1 답변
-
sum = 3500 a = 500 b = 700 c = 400 a_max = int(sum / a) + 1 b_max = int(sum / b) + 1 c_max = int(sum / c) + 1 for i in range(0, a_max): for j in range(0, b_max): for k in range(0, c_max): tmp = i * a + j * b + k * c if (tmp == 3500) and (i > 0) and (j > 0) and (k > 0): print(i, j, k)
경우의수 완전탐색하시면 됩니다.
- 경우의수 완전탐색 << 요걸 토대로 검색해서 찾아보면 될까요 선생님? 알 수 없는 사용자 2020.6.15 16:43
- 글쎄요;; 저도 알고리즘 모르고 그냥 문제보면 가격 3500을 넘지않는 abc조합의 경우의수를 완전탐색하면 될거 같은데요 김호원 2020.6.16 08:53
댓글 입력