[ 백준 / python ] 1026. 보물

HYEJIN·2022년 6월 6일
0

백준

목록 보기
1/2

1026. 보물

구현방법

첫번째의 배열만 움직일 수 있고 두번째 배열은 정렬하면 안된다고 하였으나,
사실상 두번째의 배열을 움직이더라도 첫번째의 배열이 움직인 것으로 간주하면 됨으로 곱한값의 최소값을 구하는 문제에서 결과에 영향을 끼치지는 않는다.

1) 첫번째 배열 arr1은 오름차순, arr2는 내림차순으로 정렬
2) 각 자리의 인덱스끼리 곱한후에 값을 더한값이 최종 최소값이 된다.

n = int(input())
arr1 = list(map(int,input().split()))
arr2 = list(map(int,input().split()))
result=0

arr1.sort(reverse=True)
arr2.sort()
for i in range(n):
    result += arr1[i]*arr2[i]
print(result)

다른사람 풀이

1) 첫번째의 배열을 오름차순 정렬
2) 두번째 배열에서의 최대값을 찾아서 곱한 값을 더한 후에, 최대값을 배열에서 삭제

n = int(input())
arr1 = list(map(int,input().split()))
arr2 = list(map(int,input().split()))
result=0

arr1.sort()

for i in range(n):
    result += arr1[i] * max(arr2)
    arr2.remove(max(arr2))
print(result)

0개의 댓글