티스토리 뷰
1026번: 보물
첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거
www.acmicpc.net
1. 문제 내용
2. 접근 방식
- a의 최소값과 b의 최대값의 결합
a = [1, 1, 3]이고 b = [10, 30, 20]이라고 하자. 이때 1 * 30 + 1 * 20 + 3 * 10 = 80이다. 즉, a는 값이 작은 순서대로, b는 값이 큰 순서대로 매칭시키면 결과가 최솟값이 나온다. 그러므로, a와 b를 각각 오름차순, 내림차순 정렬한 후 결과를 구한다.
3. 정답 코드
n = int(input())
a = list(map(int, input().split()))
b = list(map(int, input().split()))
a.sort()
b.sort(reverse=True)
result = 0
for i in range(n):
result += a[i] * b[i]
print(result)
728x90
'코딩 테스트 > 백준' 카테고리의 다른 글
[백준] 1969번 DNA 파이썬 정답 코드 (0) | 2023.06.04 |
---|---|
[백준] 2847번 게임을 만든 동준이 파이썬 정답 코드 (0) | 2023.06.04 |
[백준] 4693번 섬의 개수 파이썬 정답 코드 (0) | 2023.06.02 |
[백준] 10026번 적록색약 파이썬 정답 코드 (0) | 2023.05.24 |
[백준] 11724번 연결 요소의 개수 파이썬 정답 코드 (0) | 2023.05.24 |