๋ฌธ์ ์ค๋ช
๊ธธ์ด๊ฐ ๊ฐ์ ๋ฐฐ์ด A, B ๋๊ฐ๊ฐ ์์ต๋๋ค. ๊ฐ ๋ฐฐ์ด์ ์์ฐ์๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
๋ฐฐ์ด A, B์์ ๊ฐ๊ฐ ํ ๊ฐ์ ์ซ์๋ฅผ ๋ฝ์ ๋ ์๋ฅผ ๊ณฑํฉ๋๋ค. ์ด๋ฌํ ๊ณผ์ ์ ๋ฐฐ์ด์ ๊ธธ์ด๋งํผ ๋ฐ๋ณตํ๋ฉฐ, ๋ ์๋ฅผ ๊ณฑํ ๊ฐ์ ๋์ ํ์ฌ ๋ํฉ๋๋ค. ์ด๋ ์ต์ข
์ ์ผ๋ก ๋์ ๋ ๊ฐ์ด ์ต์๊ฐ ๋๋๋ก ๋ง๋๋ ๊ฒ์ด ๋ชฉํ์
๋๋ค. (๋จ, ๊ฐ ๋ฐฐ์ด์์ k๋ฒ์งธ ์ซ์๋ฅผ ๋ฝ์๋ค๋ฉด ๋ค์์ k๋ฒ์งธ ์ซ์๋ ๋ค์ ๋ฝ์ ์ ์์ต๋๋ค.)
์๋ฅผ ๋ค์ด A = [1, 4, 2] , B = [5, 4, 4] ๋ผ๋ฉด
- A์์ ์ฒซ๋ฒ์งธ ์ซ์์ธ 1, B์์ ์ฒซ๋ฒ์งธ ์ซ์์ธ 5๋ฅผ ๋ฝ์ ๊ณฑํ์ฌ ๋ํฉ๋๋ค. (๋์ ๋ ๊ฐ : 0 + 5(1x5) = 5)
- A์์ ๋๋ฒ์งธ ์ซ์์ธ 4, B์์ ์ธ๋ฒ์งธ ์ซ์์ธ 4๋ฅผ ๋ฝ์ ๊ณฑํ์ฌ ๋ํฉ๋๋ค. (๋์ ๋ ๊ฐ : 5 + 16(4x4) = 21)
- A์์ ์ธ๋ฒ์งธ ์ซ์์ธ 2, B์์ ๋๋ฒ์งธ ์ซ์์ธ 4๋ฅผ ๋ฝ์ ๊ณฑํ์ฌ ๋ํฉ๋๋ค. (๋์ ๋ ๊ฐ : 21 + 8(2x4) = 29)
์ฆ, ์ด ๊ฒฝ์ฐ๊ฐ ์ต์๊ฐ ๋๋ฏ๋ก 29๋ฅผ return ํฉ๋๋ค.
๋ฐฐ์ด A, B๊ฐ ์ฃผ์ด์ง ๋ ์ต์ข ์ ์ผ๋ก ๋์ ๋ ์ต์๊ฐ์ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์.
์ ํ ์กฐ๊ฑด
- ๋ฐฐ์ด A, B์ ํฌ๊ธฐ : 1,000 ์ดํ์ ์์ฐ์
- ๋ฐฐ์ด A, B์ ์์์ ํฌ๊ธฐ : 1,000 ์ดํ์ ์์ฐ์
์ ์ถ๋ ฅ ์
A | B | answer |
[1, 4, 2] | [5, 4, 4] | 29 |
[1,2] | [3,4] | 10 |
๋ด ๋ฌธ์ ํ์ด
func solution(_ A:[Int], _ B:[Int]) -> Int {
var result = 0
let arrA = A.sorted(by: <) // ์ค๋ฆ์ฐจ์ ์ ๋ ฌ
let arrB = B.sorted(by: >) // ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ
for i in 0..<A.count {
result += arrA[i] * arrB[i]
}
return result
}
- ๋จผ์ ๋ฌธ์ ๋ฅผ ๋ณด๊ณ , ํ ๋ฐฐ์ด์ ๊ฐ์ฅ ์์ ์์ ๊ฐ์ฅ ํฐ ์๋ฅผ ๋งค์นํด์ ๊ณฑํด ๋์ ํ๋ฉด ์ต์๊ฐ์ด ๋๊ฒ ๋ค๊ณ ์๊ฐํ๋ค.
- ๋ฐ๋ผ์ A๋ ์ค๋ฆ์ฐจ์, B๋ ๋ด๋ฆผ์ฐจ์์ผ๋ก sortํด์ฃผ์๊ณ , ์์๋๋ก ๊ณฑํด์ ๋์ ํ๋ค.
๐ก ํผ๋๋ฐฑ
- ์ข ๋ ์ฝ๋๋ฅผ ๊ฐ๊ฒฐํ ์์ฑํ ์ ์์ ๊ฒ๋ ๊ฐ์๋ฐ, ๋์ ํ ๋ ์ค๋ฅด์ง ์์ ์ด๋ ๊ฒ ๋ง๋ฌด๋ฆฌํ๋ค.
- ๊ณ ์ฐจํจ์ ๊ณต๋ถ๊ฐ ๋ ํ์ํ ๋ฏ ํ๋ค.
๐ [ ์ถ๊ฐ ] 1์ฃผ์ผ ํ ๋ค์ ํ์ด๋ณด๊ธฐ
func solution(_ A:[Int], _ B:[Int]) -> Int {
return zip(A.sorted(), B.sorted(by: >)).map(*).reduce(0, +)
}
- ์ฒซ ๋ฒ์งธ๋ก ํ์์ ๋์ ๋ก์ง์ ๊ฐ๋ค. ํ ๋ฐฐ์ด์ ์ค๋ฆ์ฐจ์, ํ ๋ฐฐ์ด์ ๋ด๋ฆผ์ฐจ์ sort ํด์ฃผ์๋ค.
- zip์ผ๋ก ๋ ๋ฐฐ์ด์ ๋ฌถ์๊ณ , map์ ์ฌ์ฉํ์ฌ ๋ ๋ฐฐ์ด์ ์ ๋ ฌ๋ ๊ฐ๋ค์ ์์๋๋ก ๊ณฑํด์ฃผ์๋ค.
- zip์ ๊ณต๋ถํ๊ณ ๋์, zip์ ์ฌ์ฉํ๊ธฐ ๋ฑ ์ข์ ๋ฌธ์ ์ธ ๊ฒ ๊ฐ์ ์ฌ์ฉํด๋ดค๋๋ ๋๋ฌด ๊ฐ๊ฒฐํ๊ฒ ์ ์์ฑ๋์๋ค!
๋ฌธ์
'3๏ธโฃ Swift > Problem Solving' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift Algorithm] ํ๋ ฌ์ ๊ณฑ์ Programmers(Lv.2) (0) | 2021.07.08 |
---|---|
[Swift Algorithm] JadenCase ๋ฌธ์์ด ๋ง๋ค๊ธฐ Programmers(Lv.2) (0) | 2021.07.08 |
[Swift Algorithm] N๊ฐ์ ์ต์๊ณต๋ฐฐ์ Programmers(Lv.2) (1) | 2021.06.18 |
[Swift Algorithm] ๋ชจ์๊ณ ์ฌ Programmers(Lv.1) (0) | 2021.06.18 |
[Swift Algorithm] K๋ฒ์งธ ์ Programmers(Lv.1) (0) | 2021.06.18 |
๋๊ธ