[백준] 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