https://www.acmicpc.net/problem/2217
처음엔 무조건 n개의 로프를 써야 한다고 생각해서 로프의 최솟값 * 로프의 개수를 출력했다 - 틀림
n = int(input())
m = 10000
for i in range(n):
rope = int(input())
if rope < m:
m = rope
print(m * n)
다시 푼 코드
import sys
n = int(sys.stdin.readline())
rope = []
res = []
for i in range(n):
rope.append(int(sys.stdin.readline()))
rope.sort(reverse=True)
for i in range(n):
res.append(rope[i] * (i + 1))
print(max(res))
어차피 최댓값을 구해야 하기 때문에 작은 값 하나는 의미 없음
따라서 리스트를 큰 수부터 정렬한 후 차례대로 쓰인 로프의 개수를 곱하고 그 중 최댓값을 출력하도록 했다!
ㅎㅎ.
'알고리즘 > 백준' 카테고리의 다른 글
백준 1946: 신입 사원 (Python) (0) | 2021.09.30 |
---|---|
백준 10162: 전자레인지 (Python) (0) | 2021.09.30 |
백준 5585: 거스름돈 (Python) (0) | 2021.09.29 |
백준 1026: 보물 (Python) (0) | 2021.09.29 |
백준 1541: 잃어버린 괄호 (Python) (0) | 2021.09.27 |