창고 정리(그리디)

도로롱·2023년 4월 14일

문제

창고의 가로의 길이가 n이며, 창고의 높이가 리스트 요소로 주어진다. 창고 정리를 1회 할때 마다 가장 높은 층에서 가장 낮은 층으로 1개가 이동한다.
창고 정리를 m번 했을때 가장 높은 층과 가장 낮은 층의 차이를 구하는 함수를 만드시오

입력

n= 10 # 가로
warehouse = [69,42,68,76,40,87,14,65,76,81] # 높이
m = 50 # 50번 창고 정리

코드

n= 10 # 가로
warehouse = [69,42,68,76,40,87,14,65,76,81] # 높이
m = 50 # 50번 창고 정리

# 높이를 오름차순 정렬

warehouse.sort()

#창고 정리 50번 시행

for i in range(m):
	warehouse[-1] -= 1 # 가장 높은층은 1층이 감소
    warehouse[0] += 1 # 가장 낮은층은 1층이 증가
    warehouse.sort() # 위의 실행문으로 warehouse의 요소들이 순서가 바뀔수도 있으므로
    
    
print( warehouse[-1] -warehouse[0])
profile
질문 없는 성장은 없다. 3년차 데이터 분석가

0개의 댓글