MUKER_DEV with iOS

[swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๊ฐ€๊นŒ์šด ์ˆ˜ ๋ณธ๋ฌธ

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

[swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๊ฐ€๊นŒ์šด ์ˆ˜

MUKER 2022. 12. 26. 20:01
 

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

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

programmers.co.kr


๋ฌธ์ œํ’€์ด๋ฅผ ์ง๊ด€์ ์œผ๋กœ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ณ ์ฐจํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ํ’€์ด์™€
๊ณ ์ฐจํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ ํ’€์ด๋กœ ๋‚˜๋ˆ„์–ด ๊ณต๋ถ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

 

๊ณ ์ฐจํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ํ’€์ด

import Foundation


func solution(_ array:[Int], _ n:Int) -> Int {
    var num = 100
    var result = 0
    for i in array.enumerated() {
        var temp = n - i.element
        if temp < 0, num > -temp {
            num = -temp
            result = array[i.offset]
        }
        if temp >= 0, num > temp {
            num = temp
            result = array[i.offset]
        }
        if num == temp {
            result = array[i.offset]
        }
    }
    return result
}

 

  •  

 

๊ณ ์ฐจํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ ํ’€์ด

import Foundation

func solution(_ array:[Int], _ n:Int) -> Int {
    return array.min { (abs($0 - n), $0) < (abs($1 - n), $1) }!
}
  • min(by:) ํ•จ์ˆ˜๊ฐ€ ํ•ด๋‹น ํ’€์ด์—์„œ ์–ด๋–ป๊ฒŒ ์“ฐ์˜€๋Š”์ง€ ํ•ด์„ํ•˜๋Š”๋ฐ ์˜ค๋ž˜๊ฑธ๋ ธ๋‹คใ… 
  • min(by:) ํ•จ์ˆ˜๋Š” ํด๋กœ์ € ํ˜•ํƒœ๋กœ ์•ž์˜ ๊ฐ’๊ณผ ๋’ค์˜ ๊ฐ’์„ ๋น„๊ตํ•˜์—ฌ ์ œ์ผ ์ž‘์„ ์ˆ˜๋ฅผ ์ถ”๋ ค๋‚ธ๋‹ค.
  • ํ•ด๋‹น ํ’€์ด๋Š” ๋น„๊ตํ•˜๋Š” ๊ฐ’์„ ํŠœํ”Œํ˜•ํƒœ๋กœ ์ค˜์„œ ์ ˆ๋Œ€๊ฐ’(๋ฐฐ์—ด์˜ ๊ฐ’ - n)์ด ๊ฐ™๋‹ค๋ฉด
  • ํŠœํ”Œ์˜ ํŠน์ง•์ธ ๋‹ค์Œ ์ˆซ์ž๋ฅผ ๋น„๊ตํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐฐ์—ด์˜ ๊ฐ’์ด ์ž‘์€์ชฝ์„ ๋ฆฌํ„ดํ•ด์ฃผ๊ฒŒ ๋œ๋‹ค.
func solution(_ array:[Int], _ n:Int) -> Int {
    return array.min { a, b in
        (abs(a - n), a) < (abs(b - n), b)
    }!
}
  • ์œ„์™€ ๊ฐ™์€ ์›๋ฆฌ๋กœ ํด๋กœ์ €๋ฅผ ๋ณด๋‹ค ๋” ์ฝ๊ธฐ ํŽธํ•œ ํ˜•ํƒœ๋กœ ์จ๋ดค๋‹ค.