Focus On Develop ๐ŸคŸ๐ŸคŸ

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] 3์ง„๋ฒ• ๋’ค์ง‘๊ธฐ ๋ณธ๋ฌธ

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

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] 3์ง„๋ฒ• ๋’ค์ง‘๊ธฐ

๋ˆ„๋ฆฌ๋‹ฌ์ดํ‹€ 2020. 12. 16. 23:36

<๋ฌธ์ œ>


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

์ด๋ฒˆ ๋ฌธ์ œ๋Š” ์ž…์ถœ๋ ฅ ์˜ˆ์ œ๋ฅผ ๋ณด์ง€ ์•Š์œผ๋ฉด ๋Œ€๋ถ€๋ถ„ ์‘?? 3์ง„๋ฒ•์ด ๋ญ๋”๋ผ?? ํ•  ๊ฒƒ ๊ฐ™๋‹ค ใ…‹ใ…‹ (์ €๋งŒ ๊ทธ๋ž˜์š”?? ๋ ์šฉ ๐Ÿ‘€) ๊ทธ๋ž˜์„œ ๋ฌธ์ œ์— ์ž…์ถœ๋ ฅ ์˜ˆ์ œ๋ฅผ ์ถ”๊ฐ€ํ–ˆ๋‹ค..ํ•˜ํ•˜..ใ…‹ ์•”ํŠผ ์ผ๋‹จ ์ž์—ฐ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›์œผ๋ฉด, 3์œผ๋กœ ๊ณ„์† ๋‚˜๋ˆ„๋ฉด์„œ ๋ชซ์ด 3๋ณด๋‹ค ์ž‘์•„์ง€๊ธฐ ์ „๊นŒ์ง€ ๊ณ„~์† ๋‚˜๋ˆ„๊ณ .. ๊ทธ ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ•œ ๋‚˜๋จธ์ง€(0, 1, 2 ๊ฒ ์ฃ !?)๋ฅผ ๊ฑฐ๊พธ๋กœ ์ญ‰~ ์ด์–ด ๋ถ™์ด๋ฉด 3์ง„๋ฒ• ํ‘œํ˜„์ด ๋œ๋‹ค. ๋ณดํ†ต 10์ง„์ˆ˜๋ฅผ ๋‹ค๋ฅธ ์ง„์ˆ˜๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๋กœ์ง์„ ๊ตฌํ˜„ํ•˜๋ฉด ์ˆœ์„œ๊ฐ€ ๋ฐ˜์ „๋œ ์ง„์ˆ˜๋กœ ํ‘œํ˜„๋˜์„œ, ์˜ฌ๋ฐ”๋ฅธ ์ง„๋ฒ• ํ‘œ๊ธฐ๋ฅผ ์œ„ํ•ด์„œ๋Š” ๊ฒฐ๊ตญ์€ reverse์ž‘์—…์„ ํ•ด์ค˜์•ผ ํ•˜๋Š”๋ฐ.. ์ด ๋ฌธ์ œ๋Š” ๋ฌธ์ œ์—์„œ ํ•œ๋ฒˆ ๋’ค์ง‘์œผ๋ผ๊ณ  ํ•˜๋„ค? ใ…‹ใ…‹ ๊ฟ€~~๐Ÿ‘๐Ÿ‘ (์–ด์ฐจํ”ผ ์ฝ”๋“œ๋Š” ํ•œ์ค„์ด์ง€๋งŒ ใ…‹ใ…‹) ๊ทธ๋Ÿฐ ํ›„์— 3์ง„์ˆ˜๋ฅผ 10์ง„๋ฒ•์œผ๋กœ ํ‘œํ˜„ํ•˜๋ ค๋ฉด, ์ œ์ผ ์ž‘์€์ž๋ฆฌ(์ œ์ผ ์šฐ์ธก) ๋ถ€ํ„ฐ 3์˜ 0์ œ๊ณฑxํ‘œํ˜„์ˆซ์ž, 3์˜ 1์ œ๊ณฑ x ํ‘œํ˜„์ˆซ์ž ... ์ด๋ ‡๊ฒŒ ์ด์–ด๋ถ™์ด๋ฉด ๋œ๋‹ค! ์–ด๋ ค์›Œ ๋ณด์˜€๋Š”๋ฐ ์‰ฌ์šธ๊ฑฐ๊ฐ™๋‹ค..!? ๐Ÿ˜ ๐Ÿ˜

 

<์ฝ”๋“œ>

import Foundation

func TenToThreeReversed(n: Int) -> [String] {
    var threeArray: [String] = []
    var n = n
    while n >= 3 {
        threeArray.append(String(n%3))
        n /= 3
    }
    threeArray.append(String(n%3))
    return threeArray
}

func ThreeToTen(array: [String]) -> Int {
    var ten = 0
    var three = 1
    for n in array.reversed() {
        ten = ten + (three * Int(n)!)
        three *= 3
    }
    return ten
}

func solution(_ n:Int) -> Int {
    return ThreeToTen(array: TenToThreeReversed(n: n))
}

 

<Lesson Learned>

์ด๋ฒˆ์—๋Š” 10์ง„์ˆ˜๋ฅผ 3์ง„์ˆ˜๋กœ, 3์ง„์ˆ˜๋ฅผ 10์ง„์ˆ˜๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๊ฐ๊ฐ ๋”ฐ๋กœ ๊ตฌํ˜„ํ–ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ’€๋ฉด์„œ ํ•œ๊ฐ€์ง€ ์•Œ๊ฒŒ ๋œ ์ ์€, ํ˜•๋ณ€ํ™˜์‹œ Int -> String ์œผ๋กœ ์‹œ๋„์‹œ ์•„๋ฌด๋Ÿฐ ์ด์Šˆ๊ฐ€ ์—†์—ˆ๋Š”๋ฐ, String -> Int ๋กœ ํ˜•๋ณ€ํ™˜ ์‹œ๋„์‹œ Int("123")๋Š” ์˜ต์…”๋„ ํƒ€์ž…์ด๋‹ˆ unwrapping์„ ํ•ด์ฃผ๋ผ๊ณ  ํ•˜๋”๋ผ..?? ๊ทธ๋ž˜์„œ ์ฐพ์•„๋ณด๋‹ˆ, String์œผ๋กœ ํ‘œํ˜„๋œ ์ˆซ์ž "123", "55" ๋“ฑ์€ ๋‹น์—ฐํžˆ Int๋กœ ํ‘œํ˜„ ๋˜๊ฒ ์ง€. ์‹ถ์ง€๋งŒ, String์ด "hello" ๋ผ๋ฉด..? ๊ทธ๋Ÿผ Int()๋กœ ํ˜•๋ณ€ํ™˜์„ ํ•  ์ˆ˜ ์—†๊ณ , nil ์ด ๋˜๊ฒŒ ๋œ๋‹ค. ๋”ฐ๋ผ์„œ String -> Int๋กœ ๋ณ€ํ™˜์‹œ unwrapping ๊ณผ์ •์„ ๊ฑฐ์น ๊ฒƒ~! ์ด ๋ฌธ์ œ๋Š” ๋ฐ˜๋“œ์‹œ ์ˆซ์žํ˜•์‹์˜ String์ด๋ผ ๊ฐ•์ œ๋กœ ๋ฒ—๊ฒจ์ฃผ๊ธด ํ–ˆ์ง€๋งŒ..

์•„๋ฌดํŠผ ์ด๋ฒˆ์—๋„ ๋‹ค๋ฅธ์‚ฌ๋žŒ์˜ ํ’€์ด๋ฅผ ๋ดค๋Š”๋ฐ, ์—„์ฒญ๋‚œ๊ฑธ ์•Œ๊ฒŒ ๋๋‹ค..!! ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹น ใ…‹ใ…‹ใ…‹ ์ด๊ฑฐ๋ผ๋ฉด Swift๋กœ ์ง„๋ฒ•๋ฌธ์ œ ํ’€๋ฉด ๋ฌด์ ์ผ๋“ฏ ๐Ÿ˜Ž๐Ÿ˜Ž

๋ญ”์ง€ ์™„์ „ ๊ถ๊ธˆํ•˜์ฅฌ???

๊ถ๊ธˆํ•˜๋ฉด ์—ฌ๊ธฐ๋กœ!! ๐Ÿ‘‰  2020/12/16 - [iOS [Swift]/๊ธฐ์ดˆ๋ฅผ ํƒ„ํƒ„ํžˆ!] - [Swift] String Radix๋ฅผ ํ†ตํ•œ ์ง„๋ฒ•๋ณ€ํ™˜

 

 

์ถœ์ € : ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 3์ง„๋ฒ• ๋’ค์ง‘๊ธฐ

 

Comments