코딩하는 베어브릭

그리디 문제 #3. 창고 정리 본문

알고리즘/인프런: 파이썬 알고리즘 문제풀이

그리디 문제 #3. 창고 정리

bearbrick 2022. 7. 5. 19:05

*이 풀이는 인프런: 파이썬 알고리즘 문제풀이 강좌에 기반하였습니다.

 

 

 

 

내 풀이

 

1. 상자의 높이를 오름차순으로 정렬한다.

 

2. 가장 높이가 큰 값은 1 감소시키고, 가장 높이가 작은 값은 1 증가시켜 상자를 이동시켜준다. 이 과정을 m회 반복한다.

 

 

import sys
#sys.stdin=open("input.txt","rt")

l=int(input())
heights=list(map(int,input().split()))
m=int(input())

for _ in range(m):  
    heights.sort()
    heights[-1]-=1
    heights[0]+=1
heights.sort()
print(heights[-1]-heights[0])

 

 

 

 

강사님 풀이

 

import sys
sys.stdin=open("input.txt","rt")

L=int(input())
a=list(map(int,input().split()))
m=int(input())

a.sort()
for _ in range(m):
    a[0]+=1
    a[L-1]-=1
    a.sort()

print(a[L-1]-a[0])

 

 

 

 

강사님과 거의 비슷하게 풀었다!

Comments