본문 바로가기
코딩테스트/문제풀이-2

[선택] 1026 보물 [정렬][그리디]

by apple망고 2024. 2. 14.

정답 코드

let count = Int(readLine()!)!
var answer = 0
var A: [Int] = []
var B: [Int] = []

let inputNumbers = readLine()!.split(separator: " ").compactMap { Int($0) }

A.append(contentsOf: inputNumbers)

let inputNumber = readLine()!.split(separator: " ").compactMap { Int($0) }

B.append(contentsOf: inputNumber)

A.sort()

B.sort() { $0 > $1 }

for i in 0..<count {
    answer += A[i] * B[i]
}

print(answer)

 

코드 설명

  • A를 오름 차 순으로 정렬하고 B는 내림차순으로 정렬 하고 곱했을 때 최소값이 나온다.

https://www.acmicpc.net/problem/1026

 

1026번: 보물

첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거

www.acmicpc.net