Focus On Develop ๐ŸคŸ๐ŸคŸ

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋ฌธ์ž์—ด ๋‚ด ๋งˆ์Œ๋Œ€๋กœ ์ •๋ ฌํ•˜๊ธฐ ๋ณธ๋ฌธ

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

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋ฌธ์ž์—ด ๋‚ด ๋งˆ์Œ๋Œ€๋กœ ์ •๋ ฌํ•˜๊ธฐ

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

<๋ฌธ์ œ>


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

string์„ ๋‹ด๊ณ  ์žˆ๋Š” ๋ฐฐ์—ด์ด ์ฃผ์–ด์ง€๊ณ , ๊ฐ ์š”์†Œ์˜ ํŠน์ • ์ธ๋ฑ์Šค์— ์žˆ๋Š” ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•˜๋˜, ๊ทธ ๊ฐ’์ด ๋™์ผํ•˜๋ฉด ์‚ฌ์ „์ˆœ์œผ๋กœ ์ •๋ ฌํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ๋‹ค. ๊ทธ๋ž˜์„œ ๊ณ ๋ฏผํ•ด๋ดค๋Š”๋ฐ.. ํŠน์ • ์ธ๋ฑ์Šค์— ์žˆ๋Š” ๊ฐ’์œผ๋กœ ์ •๋ ฌ์„ ํ•˜๊ณ  ๋‚˜์„œ ์„ž์ธ ๊ฑธ ์–ด๋–ป๊ฒŒ ์•ŒํŒŒ๋ฒณ ์ˆœ์œผ๋กœ ๋งž์ถ”์ง€!? ๊ทธ ๊ธฐ์ค€๊ฐ’์— ๋Œ€ํ•ด ๊ทธ๋ฃจํ•‘์ด ๋˜์–ด์žˆ์–ด์•ผ ํ•˜๋‚˜!? ํ•˜๋ฉด์„œ Dictionary๋กœ ํ’€์–ด์•ผ ํ• ๊นŒ ์‹ถ์—ˆ๋Š”๋ฐ.. ๊ณฐ๊ณฐํžˆ ๋ณด๋‹ค๋ณด๋‹ˆ ใ…‹ใ…‹ ์ด๊ฒŒ ์ˆœ์„œ๋งŒ ๋ฐ”๊ฟ”์ฃผ๋ฉด ๋˜์ž–์•„? ๋จผ์ € ์•ŒํŒŒ๋ฒณ ์ˆœ์„œ๋กœ ์ •๋ ฌํ•œ ๋’ค์—, ํŠน์ • ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•ด๋„ ๊ธฐ๋ณธ ๋ฒ ์ด์Šค ์ˆœ์„œ๋Š” ์œ ์ง€๋˜๊ฒ ๊ตฐ!? ใ…‹ใ…‹ 

 

 

<์ฝ”๋“œ>

func solution(_ strings:[String], _ n:Int) -> [String] {
    let sorted = strings.sorted()
    return sorted.sorted { $0[$0.index($0.startIndex, offsetBy: n)] < $1[$1.index($1.startIndex, offsetBy: n)] }
}

 

<Lesson Learned>

์ง€๋‚œ๋ฒˆ์— ๋ฌธ์ œ๋ฅผ ํ’€๋ฉด์„œ String.Index์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•˜๊ณ  ํ•œ๋ฒˆ ์ •๋ฆฌ๋ฅผ ํ•ด๋‘”๊ฒŒ ๋„์›€์ด ๋๊ณ , ์ข€ ๋” Index๋ฅผ ๋‹ค๋ฃจ๋Š” ์‹ค๋ ฅ์ด ํ–ฅ์ƒ๋œ ๊ฒƒ ๊ฐ™๋‹ค! ๋ฟŒ๋“ฏ ๐Ÿ˜Ž๐Ÿ˜Ž ์‚ฌ์‹ค ์ง€๋‚œ๋ฒˆ์— String.Index๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๋ฐ”๋กœ Array๋กœ castingํ•ด๋ฒ„๋ฆฌ๋ฉด ํ”ํžˆ ์•Œ๊ณ  ์žˆ๋Š” ์ˆซ์ž ์ธ๋ฑ์Šค๋กœ ์‰ฝ๊ฒŒ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ์ •๋ฆฌ๋ฅผ ํ•ด๋’€๊ฑด๋งŒ...ใ…‹ใ…‹ใ…‹ ์ด๋ฒˆ์—๋„ ์‘์šฉ๋ ฅ์ด ๋”ธ๋ ค์„œ String.Index๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๋ง์•˜๋„ค..?? ๐Ÿ˜‚ ๐Ÿ˜‚ ใ…‹ใ…‹ ์ข€๋” ๊น”๋”ํ•˜๊ฒŒ ํ•˜๋ ค๋ฉด ์•„๋ž˜์ฒ˜๋Ÿผ Closure์—์„œ sorted์˜ ํ•˜๋‚˜ํ•˜๋‚˜๋ฅผ Array๋กœ castingํ•˜๋ฉด ์ข‹์•˜์„ ๊ฒƒ ๊ฐ™๋„ค ๐Ÿ‘

func solution(_ strings:[String], _ n:Int) -> [String] {
    let sorted = strings.sorted()
    return sorted.sorted { Array($0)[n] < Array($1)[n] }
}

์ถ”๊ฐ€๋กœ, ๋‹ค๋ฅธ์‚ฌ๋žŒ์˜ ํ’€์ด ์ค‘ ํš๊ธฐ์ ์ธ๊ฒŒ ํ•œ๊ฐ€์ง€ ์žˆ์–ด์„œ ๋ฐฐ์›Œ๋ณด๋ฉด.. ์ฒซ์ค„์—์„œ ์ •๋ ฌ์„ ํ•  ํ•„์š” ์—†์ด ํ•œ๋ฒˆ์— ์ด๋ ‡๊ฒŒ๋„ ๊ฐ€๋Šฅํ–ˆ๋„ค ใ…Žใ…Ž ๐Ÿ‘ 

func solution(_ strings:[String], _ n:Int) -> [String] {
    return strings.sorted{  Array($0)[n] == Array($1)[n] ? $0 < $1 :  Array($0)[n] < Array($1)[n] }
}

 

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

 

 

์ถœ์ € : ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฌธ์ž์—ด ๋‚ด ๋งˆ์Œ๋Œ€๋กœ ์ •๋ ฌํ•˜๊ธฐ

Comments