[白俊/python]14247号:解樹
14247号:木を切る
最初は、毎日一番背の高い木を切り落とす.このように近づくと,与えられたテストコードさえ答えられない.
コード審査官の助けで問題を解決し、核心的な方法は木を一度だけ切ることだ.特に、最終日に一度だけ成長速度が最も速い木を切る.伐採はいずれもn日あり、n本の木があるので、成長速度が最も遅い木から、最も速い木の順に並べて、切っておけばいいのです.
N = int(input()) #나무의 개수(벌목할 일자)
h = list(map(int, input().split())) #나무의 길이들
speed = list(map(int,input().split())) #나무의 성장속도
arr = []
total = 0
for i in range(N): # 나무의 초깃값(길이)과 성장속도를 2차원 배열에 담아준다.
arr.append([h[i], speed[i]])
arr.sort(key = lambda x:x[1]) # lambda 식을 이용해서 index=1에 해당하는 성장속도를 기준으로 정렬해주었다.
for i in range(N):
total += arr[i][0] + arr[i][1] * i
print(total)
Reference
この問題について([白俊/python]14247号:解樹), 我々は、より多くの情報をここで見つけました https://velog.io/@cornflower_blue/백준파이썬-14247번-나무자르기-풀이テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol