Focus On Develop ๐ŸคŸ๐ŸคŸ

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์นดํŽซ ๋ณธ๋ฌธ

iOS [Swift]/์•Œ๊ณ ๋ฆฌ์ฆ˜

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์นดํŽซ

๋ˆ„๋ฆฌ๋‹ฌ์ดํ‹€ 2021. 1. 5. 15:45

<๋ฌธ์ œ>


<์ „๋žต์งœ๊ธฐ>

์ผ๋‹จ ์นดํŽซ ํฌ๊ธฐ๋ฅผ ์ •ํ•˜๋Š” ๊ทœ์น™ ํ˜น์€, ์›๋ฆฌ๋ฅผ ์•Œ์•„๋‚ด์•ผ ํ•œ๋‹ค. ์ฒ˜์Œ ์‹œ๋„๋Š” brown ๊ธฐ์ค€์œผ๋กœ ํฌ๊ธฐ๋ฅผ ์ถ”์ •ํ•˜๋ ค๊ณ  ํ•ด๋ณผ๊นŒ ํ–ˆ๋Š”๋ฐ.. ์˜ˆ์‹œ 3๋ฒˆ ์ผ€์ด์Šค์—์„œ ์•„? ์ด๊ฑด์•ˆ๋˜๊ฒ ๊ตฌ๋‚˜ ํ•˜๊ณ  ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค ใ…‹ใ…‹ ์ฆ‰.. ์ด๋ฌธ์ œ๋Š” yellow ๋กœ๋ถ€ํ„ฐ ํฌ๊ธฐ๋ฅผ ์•Œ์•„๋‚ด์•ผํ•œ๋‹ค๋Š” ์˜๋ฏธ๋‹ค. ์ง์‚ฌ๊ฐํ˜•๊ณ  yellow์˜ ํฌ๊ธฐ๊ฐ€ ์ตœ์†Œ 1x1์€ ๋˜๋‹ˆ(์ž…์ถœ๋ ฅ ์ œํ•œ์‚ฌํ•ญ), yellow์˜ ํฌ๊ธฐ๋งŒ ์•Œ๋ฉด yellow์˜ (์œ„์•„๋ž˜๊ธธ์ด + ์ขŒ์šฐ๊ธธ์ด) x 2 + 4(๋์ชฝ๋ชจ์„œ๋ฆฌ) ๋งŒ ํ•ด์ฃผ๋ฉด brown์˜ ๊ฐฏ์ˆ˜๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. (brown์€ yellow๋ฅผ ๊ฐ์‹ธ๋Š” ํ…Œ๋‘๋ฆฌ๋‹ˆ๊นŒ) ๊ด€๊ฑด์€ yellow์˜ ํฌ๊ธฐ๋Š” ์–ด๋–ป๊ฒŒ ๊ตฌํ•˜์ง€? yellow์˜ ํฌ๊ธฐ๋Š” ๊ฐ€๋กœx์„ธ๋กœ๋กœ ๊ตฌํ•ด์งˆ ๊ฑด๋ฐ, ๊ฐ€๋Šฅํ•œ ์กฐํ•ฉ์˜ ๊ฐ€๋กœx์„ธ๋กœ (์•ฝ์ˆ˜์˜ ๊ณฑ) ์ค‘์— ์œ„์—์„œ ๋„์ถœํ•œ brown ๊ฐฏ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๊ณต์‹์— ๋„ฃ์—ˆ์„๋•Œ ์ž…๋ ฅ brown๊ณผ ๋งž์•„ ๋–จ์–ด์ง€๋Š” yellow๋ฅผ ์„ ํƒํ•œ ํ›„์—, ๊ฐ€๋กœ/์„ธ๋กœ์— ๊ฐ๊ฐ +2์”ฉ ๋”ํ•ด์ฃผ๋ฉด ์ด ํฌ๊ธฐ๊ฐ€ ๋œ๋‹ค! ์—ฌ๊ธฐ์„œ ๊ฐ€๋Šฅํ•œ ์กฐํ•ฉ์˜ ๊ฐ€๋กœ/์„ธ๋กœ๋Š” ์–ด๋–ป๊ฒŒ ๊ตฌํ•˜์ง€?ใ…‹ใ…‹ ์˜ค์ผ€์ด ์ˆ˜์‚ฌ๋Š” ์›์ ์œผ๋กœ ๐Ÿ‘ ์–ด๋–ค ์ˆ˜(A)์˜ ์•ฝ์ˆ˜๋ฅผ ๊ตฌํ• ๋•Œ๋Š” A๊ฐ€ 1๋ถ€ํ„ฐ Root A์˜ ์ •์ˆ˜๊ฐ’(B)๊นŒ์ง€ ํ™•์ธํ•˜๋ฉฐ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋Š”์ง€ ํ™•์ธํ•˜๊ณ , ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง„๋‹ค๋ฉด B๊ฐ’๊ณผ ๋ชซ์€ A์˜ ์•ฝ์ˆ˜๊ฐ€ ๋œ๋‹ค. Root๊นŒ์ง€๋งŒ ํ™•์ธํ•˜๋ฉด ๋˜๋Š” ๊ฑด ์Šค์Šค๋กœ ๊ณต๋ถ€ํ•ด๋ณด์‹œ๊ธธ ๐Ÿ˜‚๐Ÿ˜‚

 

<์ฝ”๋“œ>

import Foundation

func solution(_ brown:Int, _ yellow:Int) -> [Int] {
    var res: [Int] = []

    for n in 1...Int(sqrt(Double(yellow))) {
        if yellow % n == 0 {
            let b = yellow / n
            if (n+b)*2+4 == brown {
                res.append(b+2)
                res.append(n+2)
                break
            }
        }
    }
    return res
}

 

<Lesson Learned>

์‚ฌ์‹ค Swift์˜ map, filter, reduce๋“ฑ์— ์ต์ˆ™ํ•ด์ง€๋ ค๊ณ  ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‹œ์ž‘ํ–ˆ๋Š”๋ฐ.. ๋‚ด ํ’€์ด์˜ ๋Œ€๋ถ€๋ถ„์€ C/Java ์Šคํƒ€์ผ์ด๋‹ค ๐Ÿ˜ญ๐Ÿ˜ญ ์–ธ์ œ์ฏค ๋” ํŽธํ•ด์งˆ๊นŒ..? ํ•˜ํ•˜..ใ…‹ใ…‹ ์•„๋ฌดํŠผ ์ด๋ฒˆ ํ’€์ด๋Š” ๋‹ค๋ฅธ์‚ฌ๋žŒ์˜ ํ’€์ด์™€ ๋น„๊ตํ–ˆ์„ ๋•Œ๋„ ๊ฝค๋‚˜ ์ž˜ ํ‘ผ ๊ฒƒ ๊ฐ™๋‹ค. ๐Ÿ‘ ์•„๋งˆ sqrt()๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์•ฝ์ˆ˜๋ฅผ ์ฐพ์œผ๋ ค๊ณ  ์‹œ๋„ํ–ˆ๋‹ค๋ฉด ์–ด์ฉŒ๋ฉด? ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚ฌ์„์ง€๋„.. (yellow์˜ ์ตœ๋Œ€ ํฌ๊ธฐ๊ฐ€ 100๋งŒ..ใ…‹ใ…‹)

 

 

์•Œ๊ณ ๋ฆฌ์ฆ˜์—์„œ ์‚ฌ์šฉ๋œ sqrt() ๊ฐ€ ๊ถ๊ธˆํ•˜๋‹ค๋ฉด?? ๐Ÿ‘‰ 2021/01/05 - [iOS [Swift]/๊ธฐ์ดˆ๋ฅผ ํƒ„ํƒ„ํžˆ!] - [Swift] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฝ”๋”ฉ์‹œ ์œ ์šฉํ•œ Tip๋“ค!

 

 

์ถœ์ € : ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์นดํŽซ

Comments