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

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค LV.0] ์ˆจ์–ด์žˆ๋Š” ์ˆซ์ž์˜ ๋ง์…ˆ (1)

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

์ˆจ์–ด์žˆ๋Š” ์ˆซ์ž์˜ ๋ง์…ˆ

๋ฌธ์ œ ์„ค๋ช…

๋ฌธ์ž์—ด my_string์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. my_string์•ˆ์˜ ๋ชจ๋“  ์ž์—ฐ์ˆ˜๋“ค์˜ ํ•ฉ์„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”.

์ œํ•œ ์‚ฌํ•ญ

  • 1 ≤ my_string์˜ ๊ธธ์ด ≤ 1,000
  • my_string์€ ์†Œ๋ฌธ์ž, ๋Œ€๋ฌธ์ž ๊ทธ๋ฆฌ๊ณ  ํ•œ์ž๋ฆฌ ์ž์—ฐ์ˆ˜๋กœ๋งŒ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

my_string result
"aAb1B2cC34oOp" 10
"1a2b3c4d123" 16

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

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

  • "aAb1B2cC34oOp"์•ˆ์˜ ํ•œ์ž๋ฆฌ ์ž์—ฐ์ˆ˜๋Š” 1, 2, 3, 4์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 1 + 2 + 3 + 4 = 10์„ return ํ•ฉ๋‹ˆ๋‹ค.

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

  • "1a2b3c4d123Z"์•ˆ์˜ ํ•œ์ž๋ฆฌ ์ž์—ฐ์ˆ˜๋Š” 1, 2, 3, 4, 1, 2, 3์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 1 + 2 + 3 + 4 + 1 + 2 + 3 = 16์„ return ํ•ฉ๋‹ˆ๋‹ค.

 

์œ ์˜ ์‚ฌํ•ญ

  • ์—ฐ์†๋œ ์ˆซ์ž๋„ ๊ฐ๊ฐ ํ•œ ์ž๋ฆฌ ์ˆซ์ž๋กœ ์ทจ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค.

์ œ์ถœ

import Foundation

func solution(_ my_string:String) -> Int {
    var answer = 0 
    for s in my_string{
        if s.isNumber{
            answer += Int(String(s))!
        }
    }
    return answer
}
my_string์„ ํ•˜๋‚˜์”ฉ ๋น„๊ตํ•˜์—ฌ ์ˆซ์ž์ธ ๊ฒฝ์šฐ Int๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๋ˆ„์ ํ•ฉ์„ ๊ตฌํ•œ๋‹ค

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

import Foundation

func solution(_ my_string:String) -> Int {
     return my_string.compactMap{Int(String($0))}.reduce(0,+)
}
compactMap ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ my_string์ด ์ˆซ์ž์ธ ๊ฒฝ์šฐ๋ฅผ ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜ํ•œ ํ›„, reduce ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•ฉ์„ ๊ตฌํ•œ๋‹ค

 

๋ฐ˜์‘ํ˜•