[문제]
세 자매가 해외여행 중 기념품 가게에 왔습니다.
이 기념품 가게에서는 한번에 50달러 이상 지출하면, 10달러를 할인해주는 행사를 하고 있습니다.그녀들은 구매한 물건을 합하여 계산하면, 각자 따로 지불하는 것보다 적게 지불할 수 있다는 것을 깨달았습니다.
예를들어 그들이 각각 46달러, 62달러, 9달러만큼의 상품을 구입하는 경우, 46달러와 9달러를 합치는 것으로 2번의 구매를 할 수 있습니다.이렇게 하면 55달러와 62달러로 거래하게 되어 총 20달러의 할인을 받을 수 있습니다.
여기 goods 가 주어집니다.goods 의 각 요소는 한 명이 구매하려는 물품의 총 비용입니다.
세 자매가 모든 상품을 구입하는데 드는 최소 비용을 리턴하세요.
(그녀들은 위 설명처럼 합쳐서 구매할 수 있지만, 자기가 구입할 상품을 나눠서 구매하지는 않습니다.)
풀이 1) - python
더보기
class Solution:
def solution(self, goods):
check=answer=0
for good in sorted(goods):
check+=good
if check >=50:
answer += check-10
check=0
return answer if check==0 else answer+check
풀이 2) - java
더보기
import java.util.*;
public class Solution{
public int solution(int[] goods){
int answer=0;
int temp=0;
Arrays.sort(goods);
for(int i=0;i<goods.length;i++) {
temp+=goods[i];
answer+=goods[i];
if(temp>=50){
temp=0;
answer-=10;
}
}
return answer;
}
}
풀이 3) - python
더보기
class Solution:
def solution(self, goods):
tempTotal = 0;
temp = 0;
for good in goods:
if good < 50 :
if temp + good >= 50:
tempTotal += good - 10
temp = 0;
else :
tempTotal += good
temp += good
else :
tempTotal += good - 10
return tempTotal
'workSpace > ALGORITHM' 카테고리의 다른 글
[구두법 고침이] (0) | 2021.02.02 |
---|---|
[막대] (0) | 2021.02.02 |
[가방 퀴즈] (0) | 2021.02.02 |
[암호 추적] (0) | 2021.02.02 |
[숫자 문자열 정렬하기] (0) | 2021.02.02 |