ps | |
---|---|
링크 | programmers.co.kr/… |
출처 | 프로그래머스 |
문제 번호 | 12984 |
문제명 | 지형 편집 |
레벨 | Level 4 |
분류 |
애드혹, 선택 알고리즘 |
시간복잡도 | O(n) |
인풋사이즈 | n<=90000 |
사용한 언어 | Python |
해결날짜 | 2020/12/19 |
"""Solution code for "Programmers 12984. 지형 편집".
- Problem link: https://programmers.co.kr/learn/courses/30/lessons/12984
- Solution link: http://www.teferi.net/ps/problems/programmers/12984
"""
import itertools
def solution(land, P, Q):
heights = sorted(itertools.chain.from_iterable(land))
target = heights[Q * len(heights) // (P + Q)]
return sum((target - h) * (P if target > h else -Q) for h in heights)