๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
โŒจ๏ธ Language/swift

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค LV.0] ๋ฌธ์ž์—ด ์ •๋ ฌํ•˜๊ธฐ (1)

by hyebin (Helia) 2022. 12. 30.
๋ฐ˜์‘ํ˜•

๋ฌธ์ž์—ด ์ •๋ ฌํ•˜๊ธฐ

๋ฌธ์ œ ์„ค๋ช…

๋ฌธ์ž์—ด my_string์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, my_string ์•ˆ์— ์žˆ๋Š” ์ˆซ์ž๋งŒ ๊ณจ๋ผ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌํ•œ ๋ฆฌ์ŠคํŠธ๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด ๋ณด์„ธ์š”.

์ œํ•œ ์‚ฌํ•ญ

  • 1 ≤ my_string์˜ ๊ธธ์ด ≤ 100
  • my_string์—๋Š” ์ˆซ์ž๊ฐ€ ํ•œ ๊ฐœ ์ด์ƒ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • my_string์€ ์˜์–ด ์†Œ๋ฌธ์ž ๋˜๋Š” 0๋ถ€ํ„ฐ 9๊นŒ์ง€์˜ ์ˆซ์ž๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

my_string result
"hi12392" [1, 2, 2, 3, 9]
"p2o4i8gj2" [2, 2, 4, 8]
"abcde0" [0]

์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ #1

  • "hi12392"์— ์žˆ๋Š” ์ˆซ์ž 1, 2, 3, 9, 2๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌํ•œ [1, 2, 2, 3, 9]๋ฅผ return ํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #2

  • "p2o4i8gj2"์— ์žˆ๋Š” ์ˆซ์ž 2, 4, 8, 2๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌํ•œ [2, 2, 4, 8]์„ return ํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #3

  • "abcde0"์— ์žˆ๋Š” ์ˆซ์ž 0์„ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌํ•œ [0]์„ return ํ•ฉ๋‹ˆ๋‹ค.

์ œ์ถœ

import Foundation

func solution(_ my_string:String) -> [Int] {
    var answer = [Int]()
    for s in my_string{
        if s.isNumber{
            answer.append(Int(String(s))!)
        }
    }
    return answer.sorted()
}
my_string์„ ํ•˜๋‚˜์”ฉ ๋น„๊ตํ•˜์—ฌ ์ˆซ์ž์ธ ๊ฒฝ์šฐ answer์— ์ถ”๊ฐ€ํ•œ๋‹ค.
์ดํ›„ answer๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

๋‹ค๋ฅธ ํ’€์ด

import Foundation

func solution(_ my_string:String) -> [Int] {
    return my_string.filter{$0.isNumber}.map{Int(String($0))!}.sorted(by: <)
}
filter ํ•จ์ˆ˜์™€ map ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ my_string์ด ์ˆซ์ž์ธ ๊ฒฝ์šฐ๋ฅผ ๋ฐฐ์—ด๋กœ ๋งŒ๋“  ํ›„ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
๋ฐ˜์‘ํ˜•