카테고리 없음
[백준 알고리즘] 2217 - 로프
soom22
2023. 7. 16. 18:33
import sys
N=int(input())
num=[]
lope=[]
for i in range(N):
lope.append(int(input()))
lope.sort(reverse=True)
for j in range(N):
num.append(lope[j]*(j+1))
print(max(num))
떠올린 접근 방식, 과정
n개의 로프를 크기 순으로 정렬한 후에
for문을 돌려 본인 * n+1-i를 다른 배열에 넣은 후 그중 최대값을 출력한다.
해당 접근 방식에 쓰이는 알고리즘과 판단 사유
접근법의 총 시간복잡도
O(n)이 아닐까 싶다.
(에러 오류가 발생했다면) 해결 과정
더보기
오류코드
import sys
N=int(input())
num=[]
lope=[]
for i in range(N):
lope=list(map(int,input().split()))
lope.sort()
for i in range(N):
num[i]=lope[i]*(N-i+1)
print(max(num))
for문으로 배열에 넣으려니깐 인덱스 에러가 나서 배열을 append로 추가했고
크기순 정렬을 반대로 뒤집은 후 j+1을 주었다.