[BOJ] 2217 로프 (python)

백준 2217: 로프 (파이썬)

 

 

2217번: 로프

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

www.acmicpc.net

# [BOJ] 2217. 로프 2022-11-26
N = int(input())

a = 0
# 전체 로프를 작은 것부터 정렬
L = sorted(list(int(input()) for _ in range(N)))

for _ in range(N):
	# 가장 작은 값을 전체 로프의 수 만큼 곱해 보고 현재 최대값보다 크면 닶 변경
    aa = L[0] * len(L)
    if aa > a:
        a = aa
    # 0번째 인덱스 값을 없앰으로서 다음 가장 작은 값을 이용해 재계산
    L.pop(0)

print(a)

 

로프 중 일부를 사용하지 않아도 된다는 점에 주의

(너무 작은 값을 가진 로프를 쓰는 것이 오히려 비효율적일 수 있음)

'Algorithm > BOJ' 카테고리의 다른 글

[BOJ] 1966 프린터 큐 (python)  (0) 2022.12.11
[BOJ] 4949 균형잡힌 세상 (python)  (0) 2022.12.10
[BOJ] 10989 수 정렬하기 3 (python)  (0) 2022.10.03
[BOJ] 11652 카드 (python)  (0) 2022.10.01
[BOJ] 1463 1로 만들기 (python)  (0) 2022.09.06