๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“– Problem Solution/Programmers

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ตœ์†Ÿ๊ฐ’ ๋งŒ๋“ค๊ธฐ Swift

by Fomagran ๐Ÿ’ป 2020. 8. 28.
728x90
๋ฐ˜์‘ํ˜•

ํ’€์ด: ํ•ต์‹ฌ์€ ๊ฐ€์žฅ ํฐ ์ˆ˜์™€ ๊ฐ€์žฅ ์ž‘์€ ์ˆ˜๋ฅผ ๊ณฑํ•  ๋•Œ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์ด ๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ณ ๋กœ 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))}

}

 

Colored by Color Scripter

 

 

 

๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ’€์ด

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
}

 

 

 

 

 

728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€