14247. 나무 자르기
14247번: 나무 자르기
영선이는 나무꾼으로 나무를 구하러 오전에 산에 오른다. 산에는 $n$개의 나무가 있는데, 영선이는 하루에 한 나무씩 $n$일 산에 오르며 나무를 잘라갈 것이다. 하지만 이 산은 영험한 기운이 있
www.acmicpc.net
- 풀이
- 길이가 7인 나무를 오늘 자르고, 내일 자르면 -> 14
- 오늘 다른나무 3을 자르고, 내일 7이 더 자란 14를 자르면 -> 17
- => 하루에 자라는 길이가 더 긴 나무를 가장 마지막까지 뒀다가 자르는게 이득
#하루에 한 나무씩 n일
# 하루, 하루 베어가는 길이 == 다음날 베어가는 길이
# -> 차라리 다른 나무를 베고 긴걸 다음날 베는게 더 효율적
# 자라나는 길이가 길수록 나중에
from collections import defaultdict
n=int(input())
tree=list(map(int,input().split()))
height=list(map(int,input().split()))
dic=defaultdict(list)
for idx, two_value in enumerate(zip(tree, height)):
dic[idx].append(two_value[1])
dic[idx].append(two_value[0])
val=list(dic.values())
val.sort()
result=0
result+=val[0][1]
for i in range(n-1,0,-1):
result+=val[i][1]+val[i][0]*i
print(result)
'코딩테스트 > BOJ' 카테고리의 다른 글
| [백준][BFS] 2583. 영역 구하기 (0) | 2023.09.09 |
|---|---|
| [백준][누적합] 16507. 어두운 건 무서워 (0) | 2023.08.30 |
| [백준][그리디][비트마스킹] 1052.물병 (0) | 2023.08.25 |
| [백준][다익스트라] 5972. 택배 배송 (0) | 2023.08.22 |
| [백준][sliding window] 20437. 문자열게임2 (0) | 2023.08.22 |