알고리즘 정복하기!/백준 문제풀이

백준 2217번 Python / Greedy

by seokii 2022. 2. 10.
728x90
반응형

문제 링크

https://www.acmicpc.net/problem/2217

 

2217번: 로프

N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하

www.acmicpc.net

 

풀이

N = int(input())
ropes = []
answer = []

for _ in range(N):
    ropes.append(int(input()))

ropes.sort(reverse=True)

for i in range(N):
    answer.append(ropes[i]*(i+1))

print(max(answer))

처음엔 내림차순이 아니라 오름차순으로 정렬한 후, 리스트의 길이와 해당하는 값을 더해주고 카운팅과 조건문을 사용해서 반복했더니 시간 초과가 나왔습니다..

그래서, 다시 생각해보다가 내림차순으로 정렬한 후, 해당하는 값 * 리스트의 순서로 계산해 answer 리스트에 넣어준 뒤 max()로 최댓값을 출력했습니다.

 

728x90
반응형

'알고리즘 정복하기! > 백준 문제풀이' 카테고리의 다른 글

백준 10610번 Python / Greedy  (0) 2022.02.10
백준 1929번 Python / Math  (0) 2022.02.10
백준 1026번 Python / Greedy  (0) 2022.02.10
백준 5565번 Python / Math  (0) 2022.02.10
백준 10870번 Python / Math  (0) 2022.02.10

댓글