Focus On Develop ๐ŸคŸ๐ŸคŸ

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๊ฐ€์šด๋ฐ ๊ธ€์ž ๊ฐ€์ ธ์˜ค๊ธฐ ๋ณธ๋ฌธ

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

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๊ฐ€์šด๋ฐ ๊ธ€์ž ๊ฐ€์ ธ์˜ค๊ธฐ

๋ˆ„๋ฆฌ๋‹ฌ์ดํ‹€ 2020. 12. 17. 10:38

<๋ฌธ์ œ>


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

์‘..?? ๋„ˆ๋ฌด์‰ฌ์šด๋ฐ..??ใ…‹ใ…‹ ์ฃผ์–ด์ง€๋Š” s์˜ ๊ธธ์ด๊ฐ€ ์ง์ˆ˜/ํ™€์ˆ˜๋ƒ์— ๋”ฐ๋ผ ๊ณ„์‚ฐ์„ ์•ฝ๊ฐ„๋งŒ ๋‹ค๋ฅด๊ฒŒ ํ•ด์ฃผ๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค. Swift๋Š” ํ™•์‹คํžˆ C, Python, JAVA๋ณด๋‹ค String ๊ด€๋ จ๋œ ๊ธฐ๋Šฅ์€ ์•ฝํ•œ(?) ๊ธฐ๋ถ„์ด๋‹ค.. string[index] ์—์„œ index๋ฅผ ๋‚ด๊ฐ€ ์ •ํ•œ ์ˆซ์ž๋กœ ์ ‘๊ทผํ•  ์ˆ˜๊ฐ€ ์—†๊ณ , Swift์—์„œ๋Š” index์— String.Index Type์œผ๋กœ ๋„ฃ์–ด์ค˜์•ผ ํ•œ๋‹ค๋Š” ์ ... ํ‘ํ‘. ์•”ํŠผ String.Index๋กœ ๋ฌธ์ œํ’€๊ธฐ!

 

<์ฝ”๋“œ>

func solution(_ s:String) -> String {
    let firstIndex = s.startIndex
    let length = s.count
    if length % 2 == 0 {
        return String(s[s.index(firstIndex, offsetBy: length/2-1)...s.index(firstIndex, offsetBy: length/2)])
    } else {
        return String(s[s.index(firstIndex, offsetBy: length/2)])
    }
}

 

<Lesson Learned>

์‚ฌ์‹ค์€, String์„ ๋‹ค๋ฅธ ์–ธ์–ด๋“ค์ฒ˜๋Ÿผ ๋ฐฐ์—ด์ฒ˜๋Ÿผ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๊ธฐ๋Œ€ํ–ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ง์ ‘์ ์ธ ์ ‘๊ทผ์„ ๋ชปํ•˜๋‹ค ๋ณด๋‹ˆ String.Index๋ฅผ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ, ๋‹ค๋ฅธ์‚ฌ๋žŒ์˜ ํ’€์ด๋ฅผ ๋ณด๋‹ˆ ๋งˆ์น˜ String์„ Array์ฒ˜๋Ÿผ ์“ฐ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋„ค..?? 

let array = Array(s)

์‘..?? ์ด๋ ‡๊ฒŒ ํ•ด๋ฒ„๋ฆฌ๋ฉด String s๋ฅผ ๋งˆ์น˜ Array์ฒ˜๋Ÿผ ์›ํ•˜๋Š” ์ˆซ์ž๋กœ index์— ๋ฐ”๋กœ ์ ‘๊ทผํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜๊ฐ€ ์žˆ๋‹ค.. ํ‘ธํ•˜ํ•ซ..ใ…‹ใ…‹ ๐Ÿ‘

๊ทธ๋ฆฌ๊ณ  ๋‚˜๋Š” s์˜ ๊ธธ์ด๊ฐ€ ํ™€์ˆ˜/์ง์ˆ˜์ธ ๊ฒฝ์šฐ๋ฅผ ๋‚˜๋ˆ ์„œ ๊ณ„์‚ฐํ•˜๋„๋ก ํ–ˆ๋Š”๋ฐ, ์กฐ๊ธˆ๋งŒ ๋ณ€๊ฒฝํ•ด์ฃผ๋ฉด ํ™€์ง์— ๊ด€๊ณ„์—†์ด ํ•œ์ค„๋กœ ์ •๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

return String(s[s.index(firstIndex, offsetBy: (length-1)/2)...s.index(firstIndex, offsetBy: length/2)])

์ง์ˆ˜์ธ ๊ฒฝ์šฐ length/2๋ฅผ ํ•ด๋ฒ„๋ฆฌ๋ฉด ๊ฐ€์šด๋ฐ ๋‘ ๊ธ€์ž ์ค‘ ๋’ค๋ฅผ ๊ฐ€๋ฅด์ผœ์„œ, length/2 -1๋กœ ์•ž์„ ๊ฐ€๋ฅดํ‚ค๊ฒŒ๋” ํ–ˆ๋‹ค. ๊ทผ๋ฐ.. ์ด๋ ‡๊ฒŒ ์ „์ฒด ๊ธธ์ด์—์„œ -1์„ ๋จผ์ € ํ•˜๊ณ  /2๋ฅผ ํ•˜๊ฒŒ๋˜๋ฉด, ํ™€์ˆ˜/์ง์ˆ˜๋“  ์ƒ๊ด€์—†์ด ๊ฐ€์šด๋ฐ๋ฅผ ๊ฐ€๋ฅดํ‚ค๊ฒŒ ๋œ๋‹ค.. ๐Ÿ˜ (ํ™€์ˆ˜๋Š” -1ํ•œ๊ฒƒ๊ณผ ์•ˆํ•œ๊ฒƒ์˜ ์ •์ˆ˜๋ถ€๋ถ„์ด ๊ฐ™์Œ..^^)

 

์•Œ๊ณ ๋ฆฌ์ฆ˜์—์„œ ์‚ฌ์šฉ๋œ String.Index ๊ฐ€ ๊ถ๊ธˆํ•˜๋‹ค๋ฉด?? ๐Ÿ‘‰ 2020/12/17 - [iOS [Swift]/๊ธฐ์ดˆ๋ฅผ ํƒ„ํƒ„ํžˆ!] - [Swift] String.Index

 

 

์ถœ์ € : ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๊ฐ€์šด๋ฐ ๊ธ€์ž ๊ฐ€์ ธ์˜ค๊ธฐ 

Comments