문제: 보물
S = A[0] × B[0] + ... + A[N-1] × B[N-1]
크기 N의 배열 A, B이 있고, 위 공식 값이 최소가 되도록 A의 원소 위치를 변경하는 문제이다.
위 공식 값이 최소가 되려면 A[N-1] * B[N-1] 이 A의 최소값 * B의 최대값이 되어야 한다.
나는 직접 원소를 이동시키진 않았고 A, B 배열을 복사해 최대값, 최소값을 갱신하고 삭제해가며 값을 계산했다.
풀이
if __name__ == '__main__':
N = int(input())
A = list(map(int, input().split()))
B = list(map(int, input().split()))
tmpA = A
tmpB = B
answer = 0
for i in range(N):
mina = min(tmpA)
maxb = max(tmpB)
if len(tmpA)>0:
tmpA.remove(mina)
tmpB.remove(maxb)
answer += (maxb * mina)
print(answer)
반응형
'Problem Solving > BOJ' 카테고리의 다른 글
백준 1260: DFS와 BFS (Python, C++) (0) | 2022.03.19 |
---|---|
백준 1049: 기타줄(Python) (0) | 2022.03.16 |
백준 1010: 다리놓기 (Python, 조합, math.comb()) (0) | 2022.03.14 |
백준 11399 : ATM (Greedy, Python, 정렬 조건 lambda) (0) | 2021.05.19 |
백준 1874 : 스택수열 (Python, deque) (0) | 2021.05.19 |