BOJ-1026, 보물
문제 📑
https://www.acmicpc.net/problem/1026
문제 정리 ▾
- A,B의 길이를 정할 N의 정수를 입력 받는다.
- A와 B의 원소를 각각 곱해서 누적시킨 S를 출력시킨다.
- 단, S는 모든 케이스 중 최솟값으로 출력을 시켜야한다.
- A는 최솟값과 B는 최댓값을 곱하면 된다.
- B의 배열은 재정렬이 되어선 안된다.
접근 🚶🏻
나의 생각 ▾
- 처음에 문제를 끝까지 안읽고 쉽다는 생각에 A와 B 배열 모두 재정렬하여 계산했다.
- 당연히 틀렸고, 문제에선 B배열은 재정렬해선 안된다는 문장에 B배열을 재정렬시킨 다른 배열변수를 만들겠다는 꼼수 😏
내 코드 ▾
func solution() {
let count = Int(readLine()!)!
let a = readLine()!.split(separator: " ").map({Int(String($0))!}).sorted { $0 < $1 }
let b = readLine()!.split(separator: " ").map({Int(String($0))!})
let b_srt = b.sorted { $0 > $1 }
var result: Int = 0
for i in 0..<count {
result += a[i] * b_srt[i]
}
print(result)
}
solution()
- 딱히 어려운 구문은 없어서 따로 리뷰는 패스하겠다.
Additional 📂
- 오랜만에 알고리즘 공부를 다시 시작한만큼 기본적인 문법을 많이 까먹었다.
- 하루에 한문제를 못풀더라도 매일 시도를 해야겠다는 생각이 들었다.
'Algorithm.zip' 카테고리의 다른 글
[Swift]BOJ-16953 (0) | 2022.04.06 |
---|---|
[Swift]BOJ-1946 (0) | 2022.04.06 |
[Swift]BOJ-11726 (0) | 2022.02.07 |
[Swift]BOJ-17298 (0) | 2022.02.05 |
[Swift]BOJ-10799 (0) | 2022.02.04 |