MUKER_DEV with iOS

[swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์ฃผ์‚ฌ์œ„ ๊ฒŒ์ž„ 3 ๋ณธ๋ฌธ

๐Ÿค– ์•Œ๊ณ ๋ฆฌ์ฆ˜/programmers

[swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์ฃผ์‚ฌ์œ„ ๊ฒŒ์ž„ 3

MUKER 2023. 6. 7. 15:41
 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr


์„ฑ๊ณต ํ’€์ด

func solution(_ a:Int, _ b:Int, _ c:Int, _ d:Int) -> Int {
    let a = Dictionary(grouping: [a,b,c,d]) { $0 }.mapValues { $0.count }.sorted { $0.value > $1.value
    }
    switch a.map { $0.value } {
    case [4]: return 1111 * a[0].key
    case [3,1]: return (10*a[0].key+a[1].key) * (10*a[0].key+a[1].key)
    case [2,2]: return (a[0].key+a[1].key) * Int(abs(a[0].key-a[1].key))
    case [2,1,1]: return a[1].key * a[2].key
    case [1,1,1,1]: return a.min {$0.key<$1.key}!.key
    default: return 0
    }
}