본문 바로가기

백준/그리디

(26)
백준 13458 - 시험 감독 www.acmicpc.net/problem/13458 13458번: 시험 감독 첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000) www.acmicpc.net 지문을 유의하여 보자. 총감독관은 오직 1명이고 부감독관은 여러명 있어도 된다고 한다. 예제 TC를 통해 해당 문장의 정확한 뜻을 유추해보자. 1 1 1 1 한개의 시험장에 한명이 시험볼 때 1을 출력할 것을 요구하고 있다. 즉 이 TC의 답 1은 무조건 들어가야 하는 총감독관을 의미하고 부감독관은 들어가지 않아도 상관없음을 알 수 있다. 이를 통해 총감..
백준 1758 - 알바생 강호 www.acmicpc.net/problem/1758 1758번: 알바생 강호 첫째 줄에 스타박스 앞에 서 있는 사람의 수 N이 주어진다. N은 100,000보다 작은 자연수이다. 둘째 줄부터 총 N개의 줄에 각 사람이 주려고 하는 팁이 주어진다. 팁은 100,000보다 작거나 같은 자연수 www.acmicpc.net 고객이 기다리는 순번이 하나 증가할수록 주려는 팁에 패널티가 1씩 생길 때(역으로 돈을 갈취하지는 않는다.), 강호가 가장 많이 팁을 벌 수 있도록 하여 고객을 배치할 때 벌어들이는 팁을 구하는 문제이다. 높은 금액의 팁을 주는 고객일수록 적은 패널티를 받게 해야 최적해에 이를 수 있다. 따라서 팁을 많이 주는 순서대로 내림차순 정렬하여 받을 수 있는 팁을 계산하면 최적해를 구할 수 있다. ..
[ICPC] 백준 17521 - Byte Coin www.acmicpc.net/problem/17521 자본금으로 얼마나 많은 수익을 얻을 수 있을지 구하는 문제이다. 바이트 코인 예측 금액을 나열한 차트를 단조 감소하는 구간과 단조 증가 하는 구간으로 분리하여 단조 감소를 만족하는 마지막 날에 풀매수하고 단조 증가를 만족하는 마지막 날에 풀매도하면 최대 이익을 얻을 수 있다. 단조 감소 구간을 추적하는 L 포인터와 단조 증가 구간을 추적하는 R 포인터를 통해 최적 매수/매도 날짜를 탐색한 후 이를 계산하는 방식으로 구현했다. 전체 코드 더보기 #include using namespace std; using ll = long long; int main() { int days; ll seed; cin >> days >> seed; if (days == 1..
백준 4796 - 캠핑 www.acmicpc.net/problem/4796 V일의 휴가 중에서 캠핑장을 최대 며칠이나 즐길 수 있을지 구하는 문제이다. 연속하는 P일 중 L일 동안 사용이 가능하다 명시했으므로 V를 P로 나누면 캠핑장을 L일동안 쓸 수 있는 횟수가 나오게 될 것이다. 이때 나머지는 min(mod, L) 계산을 통해 나머지 일 수 중에서 캠핑을 즐길 수 있는 날을 더해주면 답을 구할 수 있다. 최종 수식 $ANSWER = \lfloor V \div P \rfloor \times L + min(V mod P, L)$ 전체코드 #include #include using namespace std; using ll = long long; int main() { int l, p, v; cin >> l >> p >> v; ..
백준 12915 - 대회 개최 www.acmicpc.net/problem/12915 5개의 난이도에 해당하는 문제 수가 주어질 때 최대로 개최할 수 있는 대회의 수를 구해야 하는 문제이다. 대회를 개최하기 위해서는 쉬움, 중간, 어려움 난이도의 문제가 하나씩 배정되어야만 한다. 매개변수로 주어지는 e, m, h는 배정될 수 있는 난이도가 한가지로 정해져 있으므로 나머지 em, mh에 대해 난이도를 적절히 분배하는 방법을 찾는게 핵심이다. 방법 1. 남아있는 e, m, h를 우선적으로 배정하도록 한다. 2. 남아있는 e, m, h가 없을 경우 em, mh 중에서 배정하도록 한다. 2 - 1. 쉬움은 em을 주고 어려움은 mh를 주면 되는데 중간의 경우는 em과 mh중 더 많이 남아있는 문제를 배정하고 만약 두 난이도가 동일한 갯수만큼 ..