문제설명
예산 내에서 의자와 책상을 하나씩 사려고 합니다. 이때, 의자와 책상 가격의 합이 가장 크게 사려고 합니다.
예를 들어, 돈을 7원을 가지고 있고 의자의 가격이 [2, 5], 책상의 가격이 [4, 3, 5]일 때, 첫번째 의자와 세번째 책상을 구매하면 가격의 합이 7원이고, 이때 의자와 책상 가격의 합이 가장 큽니다.
예산 money, 의자의 가격이 담긴 리스트 chairs, 책상의 가격이 담긴 리스트 desks가 매개변수로 주어집니다. 이때 예산으로 감당할 수 있는 의자와 책상 가격 합의 최댓값을 return 하도록 solution 함수를 작성하려 합니다. 빈칸을 채워 전체 코드를 완성해주세요.
매개변수 설명
예산 money, 의자의 가격이 담긴 리스트 chairs, 책상의 가격이 담긴 리스트 desks가 solution 함수의 매개변수로 주어집니다.
* 예산 money는 1 이상 1,000 이하인 자연수입니다.
* 의자와 책상의 가격은 1 이상 1,000 이하인 자연수입니다.
* chairs와 desks의 길이는 1 이상 100 이하입니다.
return 값 설명
의자와 책상을 하나씩 살때, 예산으로 감당할 수 있는 의자와 책상 가격 합의 최댓값을 return 합니다.
* 단, 가지고 있는 금액으로 의자와 책상을 하나씩 살 수 없는 경우에는 0을 return 합니다.
예시
| money | chairs | desks | return |
|-------|--------|-----------|--------|
| 7 | [2, 5] | [4, 3, 5] | 7 |
| 7 | [3] | [5] | 0 |
예시설명
예제 #1
문제에 나온 예와 같습니다.
예제 #2
3원짜리 의자와 5원짜리 책상을 구매하면 8원이 듭니다. 이는 예산 7원을 초과하기때문에 0을 return 합니다.
문제 코드
def solution(money, chairs, desks):
answer = 0
for chair in chairs:
for desk in desks:
price = @@@
if answer < price and @@@:
answer = price
return answer
풀이
def solution(money, chairs, desks):
answer = 0
for chair in chairs:
for desk in desks:
price = chair + desk
# price가 기존 가격보다 크고 예산 내이면 answer를 price로 변경
if answer < price and price <= money:
answer = price
return answer
댓글