PS/백준

[Python] 2217번 로프

s_omi 2024. 7. 14. 09:49

✏️ 문제

 

문제 파악

로프가 버틸 수 있는 중량을 내림차순으로 정렬하면 

뒤에 있는 중량은 앞에 있는 중량까지 들 수 없으므로 뒤에 있는 중량을 기준으로 최대 중량을 계산하게 된다.

 

예제1과 같은 경우 로프가 2개가 있는데 각각 최대 10, 15 중량을 버틸 수 있다.

로프 1개만 사용한다면 최대 15만 버틸 수 있는데 

로프 2개를 사용한다면 각각 10, 10(최대 15를 들 수 있는 로프를 10까지만 사용하게 됨)으로 최대 20을 버틸 수 있게 된다.

 

알고리즘

  • 수학
  • 그리디 알고리즘
  • 정렬

 

 

코드

N = int(input())
m = []

for i in range(N):
  m.append(int(input()))

m.sort(reverse=True)
result = []

for j in range(N):
  result.append(m[j]*(j+1)) # 15*1, 10*2

print(max(result))

 

 

 


출처 : https://jitolit.tistory.com/134

'PS > 백준' 카테고리의 다른 글

[Python] 1931번 회의실 배정  (0) 2024.07.14
[Python] 1541번 잃어버린 괄호  (0) 2024.07.14
[Python] 1789번 수들의 합  (0) 2024.07.14
[Python] 10988번 팰린드롬인지 확인하기  (0) 2024.04.21
[Python] 2444번 별 찍기 - 7  (0) 2024.04.21