๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
โŒจ๏ธ Language/swift

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

by hyebin (Helia) 2023. 1. 9.
๋ฐ˜์‘ํ˜•

๊ฐ€๊นŒ์šด ์ˆ˜

๋ฌธ์ œ ์„ค๋ช…

์ •์ˆ˜ ๋ฐฐ์—ด array์™€ ์ •์ˆ˜ n์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, array์— ๋“ค์–ด์žˆ๋Š” ์ •์ˆ˜ ์ค‘ n๊ณผ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์ˆ˜๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

์ œํ•œ ์‚ฌํ•ญ

  • 1 ≤ array์˜ ๊ธธ์ด ≤ 100
  • 1 ≤ array์˜ ์›์†Œ ≤ 100
  • 1 ≤ n ≤ 100
  • ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์ˆ˜๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์ผ ๊ฒฝ์šฐ ๋” ์ž‘์€ ์ˆ˜๋ฅผ return ํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

array n result
[3, 10, 28] 20 28
[10, 11, 12] 13 12

์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ #1

  • 3, 10, 28 ์ค‘ 20๊ณผ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์ˆ˜๋Š” 28์ž…๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #2

  • 10, 11, 12 ์ค‘ 13๊ณผ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์ˆ˜๋Š” 12์ž…๋‹ˆ๋‹ค.

์ œ์ถœ

import Foundation

func solution(_ array:[Int], _ n:Int) -> Int {
    var answer = 0, minValue = Int.max
    
    for num in array{
        var temp = abs(n-num)
        if temp < minValue{
            minValue = temp
            answer = num
        }else if temp == minValue{
            answer = min(num, answer)
        }
    }
    return answer
}
๋ฐฐ์—ด์˜ ์š”์†Œ๋“ค์„ ํ•˜๋‚˜์”ฉ ๋น„๊ตํ•˜๋ฉฐ, n๊ณผ์˜ ์ฐจ๊ฐ€ ๊ฐ€์žฅ ์ž‘์€ ๊ฒฝ์šฐ๋ฅผ ์ฐพ๋Š”๋‹ค.
n๊ณผ์˜ ์ฐจ๊ฐ€ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์ด ์—ฌ๋Ÿฌ๊ฐœ์ธ ๊ฒฝ์šฐ, ๋‘˜์ค‘ ์ž‘์€ ๊ฐ’์„ ์„ ํƒํ•œ๋‹ค.

๋‹ค๋ฅธ ํ’€์ด

import Foundation

func solution(_ array:[Int], _ n:Int) -> Int {
    return array.min(by: { (abs($0 - n), $0) < (abs($1 - n), $1) })!
}

 

๋ฐ˜์‘ํ˜•