MUKER_DEV with iOS

[swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ํŠœํ”Œ ๋ณธ๋ฌธ

๐Ÿค– ์•Œ๊ณ ๋ฆฌ์ฆ˜/programmers

[swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ํŠœํ”Œ

MUKER 2023. 3. 14. 09:48
 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr


ํ’€์ด

func solution(_ s:String) -> [Int] {
    let dic = Dictionary(grouping: s.split(whereSeparator: { !$0.isNumber }), by: { Int($0)! }).sorted(by: { $0.value.count > $1.value.count })
    return dic.map { $0.key }
}

 

dic๋ณ€์ˆ˜ ๋งŒ๋“œ๋Š”๊ฒŒ ๋ญ‰์ณ์žˆ์–ด์„œ ๋ณด๊ธฐ ์ข€ ํž˜๋“ค์–ด ์ •๋ฆฌํ•˜์ž๋ฉด

1. s.splitํ•˜๋Š”๋ฐ ์กฐ๊ฑด(whereSeparator)์œผ๋กœ isNumber๊ฐ€ ์•„๋‹Œ๊ฒƒ๋“ค์„ ๋ฆฌํ„ด ํ•˜๋ฉด [2,2,1,2,1,3...]์ด๋Ÿฐ์‹์œผ๋กœ ๋‚˜์˜ด.

2. dictionary๋กœ ํ•ด๋‹น ๋ฐฐ์—ด์„ grouping.

3. value์˜ count๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ.