반응형
반응형
https://www.acmicpc.net/problem/15720
문제 요약
주어진 음식들의 전체 가격을 출력하고, 세트 메뉴는 10% 할인했을 때 가장 할인을 크게 받을 수 있는 가격 출력하기
풀이
var n = Console.ReadLine().Split().Select(int.Parse).ToList();
var a = new List<int>();
for (int i = 3; i-- > 0;) a = new List<int>(a.Concat(Console.ReadLine().Split().Select(int.Parse).OrderBy(x => x)));
float sum = 0;
Console.WriteLine(a.Sum());
for (int i = 1; i <= n.Min(); i++)
{
int b = n[0] - i, c = n[0] + n[1] - i, d = n.Sum() - i;
sum += (a[b] + a[c] + a[d]) * 0.9f;
a[b] = 0; a[c] = 0; a[d] = 0;
}
sum += a.Sum();
Console.WriteLine(sum);
풀이 해설
1. 배열 n에 각 메뉴의 개수를 입력받는다.
3. 각 메뉴의 가격을 오름차순으로 정렬한 배열을 리스트 a에 이어 붙인다.(3번 반복)
(반복문이 끝나면 a는 {2000, 2500, 3000, 800, 1000, 1300, 500, 1000}이 된다.)
5. 전체 메뉴의 합 출력
9. 최소 가격을 담을 변수 sum에 a[3-i]+a[6-i]+a[8-i] * 0.9f 한 값 더하기(n의 최솟값만큼 반복)
(a[3-i], a[6-i], a[8-i]는 각각 3000,1300,1000이 된다.)
10. a[3-i],a[6-i],a[8-i]는 0으로 초기화
12. sum에 a의 모든 요소의 합 더하기(남은 수는 2000,800)
13. sum 출력
꿈속에서 살고 싶다
반응형
'Algorithm > BAEKJOON' 카테고리의 다른 글
[C#]백준 17176 암호해독기 - Hide (0) | 2024.10.06 |
---|---|
[C#]백준 10709 기상캐스터 - Hide (1) | 2024.10.05 |
[C#]백준 4158 CD - Hide (1) | 2024.10.03 |
[C#]백준 1543 문서 검색 - Hide (0) | 2024.10.02 |
[C#]백준 15904 UCPC는 무엇의 약자일까? - Hide (0) | 2024.10.02 |