문제
- A배열과 B배열을 곱했을 때, 가장 작은 S를 찾으면 된다.
- 각 배열에 담긴 것은 한 번씩만 사용하면 된다.
- A는 재배열이 가능하지만, B는 재배열이 불가능하다.
해설 및 코드
- 조건으로 B는 재배열이 불가능하다고 나와있지만, 사실상 가장 작은 S를 찾으면 되기 때문에 큰 상관이 없다.
- 가장 큰 숫자와 가장 작은 숫자를 곱해주면 된다.
- A는 오름차순으로, B는 내림차순으로 정렬 후 두 배열을 곱한 숫자를 S에 더해주면 된다.
N = int(input())
A = list(map(int, input().split()))
B = list(map(int, input().split()))
# 배열 정렬
A.sort()
B.sort(reverse=True)
S = 0
for i in range(0, N):
S += A[i] * B[i]
print(S)
Python 문법 정리
- 배열 sort
A.sort() # 오름차순
A.sort(reverse = True) # 내림차순
'IT > 알고리즘' 카테고리의 다른 글
[백준] 좌표정렬하기 11650.python (0) | 2021.02.10 |
---|---|
[백준] 단어정렬 1181.python (0) | 2021.02.09 |
[백준] 에디터 1406.python (0) | 2021.02.07 |
[백준] 덱 10866.python (0) | 2021.02.07 |
[백준] 큐 10845.python (0) | 2021.02.04 |