ํ์ด: ํต์ฌ์ ๊ฐ์ฅ ํฐ ์์ ๊ฐ์ฅ ์์ ์๋ฅผ ๊ณฑํ ๋ ๊ฐ์ฅ ์์ ๊ฐ์ด ๋๋ค๋ ๊ฒ์ ๋๋ค.
๊ณ ๋ก A๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ์์ผ์ฃผ๊ณ B๋ฅผ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌ์์ผ์ค๋๋ค. (A๋ B๋ฅผ ๋ฐ๋๋ก ํด๋ ์๊ด์์ต๋๋ค.)
๊ทธ๋ค์ ์ฐจ๋ก๋ก A์ ๊ฐ๊ณผ B์ ๊ฐ์ ๊ณฑํด์ฃผ๊ณ ๊ทธ ๊ฐ์ ๋ํด์ค๋๋ค.
A๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ์์ผ์ค๋๋ค. => A.sorted(by:<)
B๋ฅผ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌ์์ผ์ค๋๋ค. => B.sorted(by:>)
zip์ ์ด์ฉํ์ฌ ๋ ๊ฐ์ ๋ฌถ์ด์ค๋๋ค. => zip(A.sorted(by:<) , B.sorted(by:>)) (์ฌ๊ธฐ์ zip์ ์์ ๋ง๋ค์ด์ฃผ๋ ๋ฉ์๋์ ๋๋ค.)
reduce๋ฅผ ์ด์ฉํ์ฌ ์ฐจ๋ก๋ก A์ B๋ฅผ ๊ณฑํ ๊ฐ์ ๋ํด์ค๋๋ค. => a.reduce(0) {$0 + (Int($1.0)*Int($1.1))} ( ์ฌ๊ธฐ์ reduce๋ ์ฐจ๋ก๋ก ๊ฐ์ ๋ ํด์ฃผ๋ ๋ฉ์๋์ ๋๋ค.)
์ ๋ ๋ฉ์๋๋ฅผ ํ์ฉํ์ฌ ํ์์ง๋ง ์๋์ ๊ฐ์ด for๋ฌธ์ ํ์ฉํ์ฌ ํ ์๋ ์์ต๋๋ค.
์ ์ฒดํ์ด
1 2 3 4 5 6 7 8 9 |
import Foundation
func solution(_ A:[Int], _ B:[Int]) -> Int { let a = zip(A.sorted(by:<) , B.sorted(by:>))
return a.reduce(0) {$0 + (Int($1.0)*Int($1.1))} }
|
๋ค๋ฅธ ์ฌ๋์ ํ์ด
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
import Foundation
func solution(_ A:[Int], _ B:[Int]) -> Int
{
let sA = A.sorted { $0 < $1 }
let sB = B.sorted { $0 > $1 }
var answer: Int = 0
for i in 0..<sA.count {
answer += sA[i] * sB[i]
}
return answer
}
|
'๐ Problem Solution > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
2020 ์นด์นด์ค ์ธํด์ฝ ์์ ์ต๋ํ Swift (0) | 2020.09.03 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค ํ๊ฒ ๋๋ฒ Swift (0) | 2020.08.31 |
ํ๋ก๊ทธ๋๋จธ์ค ์ต๋๊ฐ๊ณผ ์ต์๊ฐ (0) | 2020.08.28 |
ํ๋ก๊ทธ๋๋จธ์ค ๋ ๋ฐ๋จน๊ธฐ Swift (0) | 2020.08.27 |
ํ๋ก๊ทธ๋๋จธ์ค ์ฌ๋ฐ๋ฅธ ๊ดํธ Swift (0) | 2020.08.10 |
๋๊ธ