[백준] 2217번 : 로프
2021. 6. 3. 17:27ㆍ백준

접근법
- 그리디 알고리즘 위주로 연습을 하려다 쉬운 문제로 먼저 그리디 알고리즘의 감을 찾기 위해서 풀어보았다.
- 간단하게 로프를 이용하여 최대로 들 수 있는 중량을 구하는 문제로, rope가 [15, 1]이라면 로프를 1개만 사용한다고 가정하면 15의 무게를 들 수 있지만, 로프를 다 사용하면 2번째 로프때문에 2밖에 들 수 없게 된다.
- 이러한 점을 고려하여 높은 무게의 로프를 순서대로 정렬하여 (i + 1) * rope[i]가 가장 클 때의 값을 출력하도록 했다. 이때의 i는 인덱스이므로 0부터 시작하기 때문에 + 1을 하고 계산을 했다.
풀이
N = int(input())
rope = []
for _ in range(N) :
rope.append(int(input()))
result = 0
rope = sorted(rope, reverse=True)
for i in range(len(rope)) :
if result < (i + 1) * rope[i] :
result = (i + 1) * rope[i]
print(result)
결과

'백준' 카테고리의 다른 글
| [백준] 10815번, 숫자 카드 (0) | 2021.05.25 |
|---|---|
| [백준] 1992번 : 쿼드트리 (0) | 2021.05.17 |
| [백준] 2630번, 색종이 만들기 (0) | 2021.05.17 |
| [백준] 2805번 : 나무 자르기 (0) | 2021.05.07 |
| [백준] 2206번 : 벽 부수고 이동하기 (0) | 2021.04.27 |