diff --git a/백준/Silver/34948. 초콜릿 합치기/README.md b/백준/Silver/34948. 초콜릿 합치기/README.md new file mode 100644 index 0000000..2b6cdea --- /dev/null +++ b/백준/Silver/34948. 초콜릿 합치기/README.md @@ -0,0 +1,36 @@ +# [Silver III] 초콜릿 합치기 - 34948 + +[문제 링크](https://www.acmicpc.net/problem/34948) + +### 성능 요약 + +메모리: 61208 KB, 시간: 172 ms + +### 분류 + +그리디 알고리즘, 브루트포스 알고리즘, 정렬, 누적 합 + +### 제출 일자 + +2026년 1월 14일 21:51:12 + +### 문제 설명 + +
초콜릿을 좋아하는 정화는
초콜릿을 합치기 위해선 사용할 초콜릿들의 세로 길이가 모두 같아야 한다. 정화는 초콜릿의 세로 길이를 원하는 만큼 줄일 수 있다.
+ +합친 후의 초콜릿 크기를 (세로 길이)
첫째 줄에 초콜릿의 개수
둘째 줄에
셋째 줄에
합친 후의 초콜릿의 크기의 최댓값을 출력한다.
+ diff --git a/백준/Silver/34948. 초콜릿 합치기/초콜릿 합치기.py b/백준/Silver/34948. 초콜릿 합치기/초콜릿 합치기.py new file mode 100644 index 0000000..520b80e --- /dev/null +++ b/백준/Silver/34948. 초콜릿 합치기/초콜릿 합치기.py @@ -0,0 +1,27 @@ +import sys + +def main(): + input = sys.stdin.readline + N = int(input().strip()) + H = list(map(int, input().split())) + W = list(map(int, input().split())) + + MAXH = 200000 # 문제 조건 + width_at = [0] * (MAXH + 2) + + for hi, wi in zip(H, W): + width_at[hi] += wi + + ans = 0 + suffix = 0 # 현재까지의 sum_{v>=h} width_at[v] + + for h in range(MAXH, 0, -1): + suffix += width_at[h] + area = h * suffix + if area > ans: + ans = area + + print(ans) + +if __name__ == "__main__": + main()