백준 14247 나무자르기

고장난 고양이·2022년 9월 29일
0

알고리즘_python

목록 보기
71/84

문제

https://www.acmicpc.net/problem/14247

코드

n=int(input())
hi=list(map(int,input().split()))
ai=list(map(int,input().split()))
I=list(range(n))

# 성장폭이 큰 것을 나중에 자르는것이 이득이다.
# 따라서 성장폭 큰순서대로 인덱스를 정렬
I.sort(key=lambda x:ai[x])

total=0
for i in range(len(I)):
    total+=hi[I[i]]+ai[I[i]]*i


print(total)
  • 나중에 자르는 것이 이득인 경우
  • 자라는 격이 큰경우 즉 성장폭이 큰경우를 나중에 잘라야 더많은 나무를 얻을 수 있다.
  • 인덱스를 저장하는 리스트를 만들고 성장폭에 크기에 맞춰서 인덱스를 정렬한다.
  • 성장폭이 작은 순서대로 더한다.
profile
개발새발X발일지

0개의 댓글