IT/알고리즘

[백준] 보물 1026.python

Terriermon 2021. 2. 9. 15:40

 문제

- 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