728x90
반응형
문제 출처 :
문제 풀이 :
- 최대무게를 걸어야하고 , "몇 개"의 로프만 골라서 사용할 수 있다.
- 로프를 여러개 사용하는게 무게가 줄어들어서 좋을까? 라는 생각이 들 수 있지만 주의해야하는 것은 로프마다 견딜 수 있는 무게가 다르다는 점이다.
- 이런 점을 보았을때 로프를 내림차순으로 정렬 시킨후 모든 로프에 대해서 무게를 늘려가며 최대값을 갱신해주면된다.
- 제일 무거운 무게를 지탱할 수 있는 로프 순서대로 탐색하니까 뒤로 탐색을 진행해도 앞에 있는 로프들은 무조건 뒤에 탐색되는 로프보다 무거운 무게를 지탱할 수 있다는 점이 좀 까다로웠던 것 같다.
- 추가로 이 코드는 모든 배열을 다 돌기 때문에 굉장히 느리다.
rope_num = int(input())
rope_list = []
answer = 0
for _ in range(rope_num):
rope_list.append(int(input()))
rope_list.sort(reverse = True)
for i in range(rope_num):
if answer < rope_list[i] * (i + 1):
answer = rope_list[i] * (i + 1)
print(answer)
반응형
'Computer Science > Algorithm' 카테고리의 다른 글
[백준] 2869 - 달팽이는 올라가고 싶다 (Python) (0) | 2021.04.02 |
---|---|
[백준] 2529 - 부등호 (Python) (0) | 2021.04.02 |
[백준] 1931 - 회의실 배정 (Python) (0) | 2021.03.27 |
[백준] 11053 - 가장 긴 증가하는 부분 수열 (C++) (0) | 2021.03.26 |
[백준] 11047 - 동전 0 (Python) (0) | 2021.03.26 |