Algorithm Problems

[Cos Pro 2급] 6차 7번 - 최대치 예산 구하기

WakaraNai 2021. 3. 13. 10:44
728x90
반응형

문제7

예산 내에서 의자와 책상을 하나씩 사려고 합니다. 이때, 의자와 책상 가격의 합이 가장 크게 사려고 합니다.

예를 들어, 돈을 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 합니다.

 

 

 

Python

def solution(money, chairs, desks):
    result = []
    for c in chairs:
        for d in desks:
            result.append(c+d)
    result.sort()
    result.reverse()

    for x in result:
        if x<=7:
            return x
    return 0

print(solution(7,[2,5],[4,3,5]))
print(solution(7,[3],[5]))
728x90
반응형