Problem
์ฝ๋ฉํ ์คํธ ์ฐ์ต - ์ซ์ ๋ฌธ์์ด๊ณผ ์๋จ์ด
๋ค์ค์ ํ๋ก๋๊ฐ ์ซ์๋์ด๋ฅผ ํ๊ณ ์์ต๋๋ค. ๋ค์ค๊ฐ ํ๋ก๋์๊ฒ ์ซ์๋ฅผ ๊ฑด๋ฌ ๋ ์ผ๋ถ ์๋ฆฟ์๋ฅผ ์๋จ์ด๋ก ๋ฐ๊พผ ์นด๋๋ฅผ ๊ฑด๋ค์ฃผ๋ฉด ํ๋ก๋๋ ์๋ ์ซ์๋ฅผ ์ฐพ๋ ๊ฒ์์ ๋๋ค. ๋ค์์ ์ซ์์ ์ผ๋ถ ์
programmers.co.kr
Solution
1. ์๋จ์ด ์ค 2๋ฒ์งธ๊น์ง๋ฅผ key๊ฐ์ผ๋ก ํ๊ณ value๊ฐ์ผ๋ก ์๋จ์ด์ ๊ธธ์ด์ ์๋ฏธํ๋ ์ซ์๋ฅผ ์ ์ฅํ๋ค.
let allNumber = ["ze":[4,0],"on":[3,1],"tw":[3,2],"th":[5,3],"fo":[4,4],"fi":[4,5],"si":[3,6],"se":[5,7],"ei":[5,8],"ni":[4,9]]
2. s๋ฅผ ์ํํ๋ฉด์ ์ซ์์ธ ๊ฒฝ์ฐ์ ๋ฌธ์์ธ ๊ฒฝ์ฐ๋ก ์ ๋ต์ ์์ฑํ๋ค.
๋ฌธ์๊ฐ ์ซ์์ธ ๊ฒฝ์ฐ answer์ ์ถ๊ฐํ๊ณ ์๋ ๊ฒฝ์ฐ๋ 2๋ฒ์งธ ๊ธ์๋ฅผ allNumber์ ๋์ ํด 0๋ฒ์งธ๋ ๊ธธ์ด์ด๋ฏ๋ก x์ ๋ํด์ฃผ๊ณ
1๋ฒ์งธ๋ ์ซ์์ด๋ฏ๋ก answer์ ๋ฃ์ด์ค๋ค.
var answer:String = ""
let map = s.map{$0}
var x = 0
while x < s.count {
if map[x].isNumber {
answer += String(map[x])
x += 1
}else {
let str = String(map[x...x+1])
answer += String(allNumber[str]![1])
x += allNumber[str]![0]
}
}
3. answer๋ฅผ Intํ์ผ๋ก ๋ฐ๊ฟ์ ์ถ๋ ฅํ๋ค.
return Int(answer)!
Source Code
P.S
๋ค๋ฅธ ์ฌ๋ ํ์ด ์ค replacingOccurrences ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌํํ ๊ฒ์ด ๋ง์๋ค.
func solution(_ s:String) -> Int {
let hash = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]
var str = s
for i in 0...9 {
str = str.replacingOccurrences(of: hash[i], with: String(i))
}
return Int(str)!
}
์ฝ๋๋ ํจ์ฌ ๊น๋ํ๊ฒ ์์ฑ์ด ๋์ง๋ง ๊ฒฐ๊ตญ ์์ ํฌํจ๋๋ ๋จ์ด๊ฐ ์๋์ง ํ์ธํ๋ ๊ณผ์ ์ ๋ชจ๋ ์ํํ๋ฏ๋ก
ํจ์จ์ ๋ณ๋ก ์ข์๋ณด์ด์ง ์๋๋ค.
'๐ Problem Solution > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift] 2020 KAKAO BLIND RECRUITMENT ๋ธ๋ก ์ด๋ํ๊ธฐ (0) | 2021.08.03 |
---|---|
[Swift] 2019 KAKAO WINTER INTERNSHIP ์ง๊ฒ๋ค๋ฆฌ ๊ฑด๋๊ธฐ (0) | 2021.07.23 |
[Swift] 2021 KAKAO INTERNSHIP ํํธ์ง (0) | 2021.07.18 |
[Swift] ํ๋ก๊ทธ๋๋จธ์ค ์๊ฐ ์ฝ๋ ์ฑ๋ฆฐ์ง 2 2๊ฐ ์ดํ๋ก ๋ค๋ฅธ ๋นํธ (0) | 2021.07.03 |
[Swift] 2019 ์นด์นด์ค ๊ฐ๋ฐ์ ๊ฒจ์ธ ์ธํด์ฝ ๋ถ๋ ์ฌ์ฉ์ (0) | 2021.06.26 |
๋๊ธ