문제
https://www.acmicpc.net/problem/2217
문제 접근 및 테스트 케이스
더보기
- 로프를 병렬로 연결하면 각 로프에 w/k의 중량이 동일하게 지탱함
- 최대로 지탱할 수 있는 중량 = 가장 작은 로프가 지탱하는 무게 X 병렬로 연결된 로프의 수
- 각 로프마다 지탱할 수 있는 무게를 리스트로 입력받아 정렬함
- ex) [3, 10, 10, 6] =>[10, 10, 6, 3]
- 로프가 한개씩 추가되어 지탱한다고 생각하자 [10X1, 10X2, 6X3, 3X4] 에서 가장 큰 무게를 지탱하는 중량은
- 20이 됨.
테스트 케이스
입력1
4
20
27
30
32
출력: 81
입력2
4
3
3
3
10
출력: 12
입력3
4
3
30
20
10
출력: 40
입력4
4
3
10
10
6
출력: 20
파이썬 코드
def solution():
n = int(input())
rope = []
for i in range(n):
rope.append(int(input()))
rope.sort(reverse=True)
for j in range(n):
rope[j] = rope[j] * (j+1)
return max(rope)
print(solution())
'Problem Solving > CT-Python' 카테고리의 다른 글
[백준/그리디] 1026: 보물 - 파이썬 (0) | 2022.03.11 |
---|---|
[백준/그리디] 11000: 강의실 배정 - 파이썬 (0) | 2022.03.10 |
[백준/그리디] 10610: 30 - 파이썬 (0) | 2022.03.08 |
[프로그래머스/스택] 프린터 - 파이썬 (0) | 2022.03.07 |
[프로그래머스/스택] 다리를 지나는 트럭 - 파이썬 (0) | 2022.03.06 |