less than 1 minute read

문제

#1026 보물
Silver4
적용 알고리즘: 정렬 알고리즘


풀이 방법

  • 각 배열을 각각 오름차순, 내림차순으로 정렬한다.
  • 가장 큰 수는 가장 작은 수와 곱하고, 가장 작은 수는 가장 큰 수와 곱한다.

코드 흐름

  1. a 배열은 내림차순, b 배열은 오름차순으로 정렬한다.
  2. 동일한 인덱스끼리 곱하고, 합을 구한다.

코드

n = int(input())
a = [int(m) for m in input().split()]
b = [int(m) for m in input().split()]

a.sort(reverse=True)
b.sort()

sum = 0
for i in range(n):
    sum += a[i] * b[i]
print(sum)

체감 난이도: 1/5
문제에서 b 배열은 재배열하지 말라는 페이크가 있었는데 오직 값을 구하는 문제이니 무시해도 된다. 지금보니 실버2 문제를 한다는게 실버4를 풀었구나.. 티어 숫자가 헷갈린다… 어쩐지 쉽더라..


[파이썬 구문]

합을 구하는 문제도 간단하게 한 줄로 작성할 수 있다.

print(sum([a[i] * b[i] for i in range(n)]))