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

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค LV.1] ์ˆซ์ž ๋ฌธ์ž์—ด๊ณผ ์˜๋‹จ์–ด

by hyebin (Helia) 2023. 3. 5.
๋ฐ˜์‘ํ˜•
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค LV.1 ๋ชจ์Œ

์ˆซ์ž ๋ฌธ์ž์—ด๊ณผ ์˜๋‹จ์–ด

๋ฌธ์ œ ์„ค๋ช…

๋„ค์˜ค์™€ ํ”„๋กœ๋„๊ฐ€ ์ˆซ์ž๋†€์ด๋ฅผ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋„ค์˜ค๊ฐ€ ํ”„๋กœ๋„์—๊ฒŒ ์ˆซ์ž๋ฅผ ๊ฑด๋„ฌ ๋•Œ ์ผ๋ถ€ ์ž๋ฆฟ์ˆ˜๋ฅผ ์˜๋‹จ์–ด๋กœ ๋ฐ”๊พผ ์นด๋“œ๋ฅผ ๊ฑด๋„ค์ฃผ๋ฉด ํ”„๋กœ๋„๋Š” ์›๋ž˜ ์ˆซ์ž๋ฅผ ์ฐพ๋Š” ๊ฒŒ์ž„์ž…๋‹ˆ๋‹ค.
๋‹ค์Œ์€ ์ˆซ์ž์˜ ์ผ๋ถ€ ์ž๋ฆฟ์ˆ˜๋ฅผ ์˜๋‹จ์–ด๋กœ ๋ฐ”๊พธ๋Š” ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค.

  • 1478 → "one4seveneight"
  • 234567 → "23four5six7"
  • 10203 → "1zerotwozero3"

์ด๋ ‡๊ฒŒ ์ˆซ์ž์˜ ์ผ๋ถ€ ์ž๋ฆฟ์ˆ˜๊ฐ€ ์˜๋‹จ์–ด๋กœ ๋ฐ”๋€Œ์–ด์กŒ๊ฑฐ๋‚˜, ํ˜น์€ ๋ฐ”๋€Œ์ง€ ์•Š๊ณ  ๊ทธ๋Œ€๋กœ์ธ ๋ฌธ์ž์—ด s๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. s๊ฐ€ ์˜๋ฏธํ•˜๋Š” ์›๋ž˜ ์ˆซ์ž๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”.


์ฐธ๊ณ ๋กœ ๊ฐ ์ˆซ์ž์— ๋Œ€์‘๋˜๋Š” ์˜๋‹จ์–ด๋Š” ๋‹ค์Œ ํ‘œ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ˆซ์ž ์˜๋‹จ์–ด
0 zero
1 one
2 two
3 three
4 four
5 five
6 six
7 seven
8 eight
9 nine

์ œํ•œ ์‚ฌํ•ญ

  • 1 ≤ s์˜ ๊ธธ์ด ≤ 50
  • s๊ฐ€ "zero" ๋˜๋Š” "0"์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ์ฃผ์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • return ๊ฐ’์ด 1 ์ด์ƒ 2,000,000,000 ์ดํ•˜์˜ ์ •์ˆ˜๊ฐ€ ๋˜๋Š” ์˜ฌ๋ฐ”๋ฅธ ์ž…๋ ฅ๋งŒ s๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

s result
"one4seveneight" 1478
"23four5six7" 234567
"2three45sixseven" 234567
"123" 123

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

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

  • ๋ฌธ์ œ ์˜ˆ์‹œ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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

  • ๋ฌธ์ œ ์˜ˆ์‹œ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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

  • "three"๋Š” 3, "six"๋Š” 6, "seven"์€ 7์— ๋Œ€์‘๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ •๋‹ต์€ ์ž…์ถœ๋ ฅ ์˜ˆ #2์™€ ๊ฐ™์€ 234567์ด ๋ฉ๋‹ˆ๋‹ค.
  • ์ž…์ถœ๋ ฅ ์˜ˆ #2์™€ #3๊ณผ ๊ฐ™์ด ๊ฐ™์€ ์ •๋‹ต์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ฌธ์ž์—ด์ด ์—ฌ๋Ÿฌ ๊ฐ€์ง€๊ฐ€ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

  • s์—๋Š” ์˜๋‹จ์–ด๋กœ ๋ฐ”๋€ ๋ถ€๋ถ„์ด ์—†์Šต๋‹ˆ๋‹ค.

์ œ์ถœ

import Foundation

func solution(_ s:String) -> Int {
    var re = s
    var num: [String] = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]
    
    for i in 0..<num.count{
        re = re.replacingOccurrences(of: num[i], with: "\(i)")
    }
    
    return Int(re)!
}
์ž…๋ ฅ๋ฐ›์€ ๋ฌธ์ž์—ด์„ re ๋ณ€์ˆ˜์— ์ €์žฅํ•œ๋‹ค.
num๋ฐฐ์—ด์„ ์„ ์–ธํ•˜์—ฌ index 0๋ถ€ํ„ฐ 9๊นŒ์ง€ ๋Œ€์‘๋˜๋Š” ์˜๋‹จ์–ด๋ฅผ ์ €์žฅํ•œ๋‹ค.
0๋ถ€ํ„ฐ 9๊นŒ์ง€ i๋ฅผ ์ฆ๊ฐ€์‹œํ‚ค๋ฉฐ, ๋ฌธ์ž์—ด re์— ๋Œ€์‘๋˜๋Š” ์˜๋‹จ์–ด๊ฐ€ ํฌํ•œ๋˜์–ด ์žˆ๋‹ค๋ฉด ๊ทธ ์˜๋‹จ์–ด๋ฅผ ์ˆซ์ž๋กœ ๋ฐ”๊ฟ” ์ €์žฅํ•œ๋‹ค.
replacingOccurrences(of: with: ) ์‚ฌ์šฉ <of ๋ฌธ์ž์—ด ๋ถ€๋ถ„์„ with๋กœ ๋ณ€๊ฒฝ>
๋ฌธ์ž์—ด re๋ฅผ Intํ˜•์œผ๋กœ ๋ณ€ํ™˜ํ•ด ๋ฐ˜ํ™˜ํ•œ๋‹ค.
๋ฐ˜์‘ํ˜•