์ซ์์ ์ผ๋ถ ์๋ฆฟ์๋ฅผ ์๋จ์ด๋ก ๋ฐ๊พผ ๋ฌธ์์ด์ด ์ฃผ์ด์ก์ ๋, ์๋ ์ซ์๋ฅผ ์ฐพ๋ ๋ฌธ์ ์
๋๋ค
์
๋ ฅ ์์: "one4seveneight" โ ์ถ๋ ฅ: 1478
์ฒ์์ ์๊ฐํ ์ฝ๋๋ const num = {'zero': 0, ...}๊ณผ ๊ฐ์ ํ์์ผ๋ก ๊ฐ์ฒด๋ฅผ ํ๋ ๋ง๋ค์ด์ hasOwnProperty()์ผ๋ก ๊ฐ์ด ์๋ค๋ฉด ๋ณํ์ ํด์ฃผ๋ ๋ฐฉ์์ผ๋ก ์ ๊ทผ์ ํ๋ ค๊ณ ํ์๋ค. ๊ฐ์ด ์๋ค๋ฉด split(key)๋ฅผ ํ๊ณ join(value)๋ฅผ ํ๋ฉด ์ด๋จ๊น..? ํ๊ณ ์ฝ๋๋ฅผ ์น๋ คํ๋ค ๋ฌธ๋!
์.. string ๋ณํ์ ํ๋ฒ์ ๋ฐ๊ฟ์ฃผ๋๊ฒ..
....์ ๋ง๋ค!
replaceAll()๋ฉ์๋๊ฐ ์์๊ตฌ๋!
๊ทธ๋ฌ๊ณ ๋ณด๋ 0,1,2..
์๋จ์ด๋ฅผ ๋ฐฐ์ด๋ก ๋ง๋ค์ด ์ธ๋ฑ์ค๋ฅผ ํ์ฉํ๋ฉด ์ซ์๋ก์ ๋ณํ์ด ์ฝ๊ฒ ๊ตฌ๋!
๊ทธ๋ฆฌํ์ฌ forEach๋ฅผ ์ฌ์ฉํด ๊ฐ ์๋จ์ด๋ฅผ ์ํํ๋ฉด์ ๋ณํํ๋ ๋ฐฉ์์ ์ ํํ์ต๋๋ค
function solution(s) {
var answer = s;
const num = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]
num.forEach((e,i) => answer = answer.includes(e) ? answer.replaceAll(e,i) : answer)
return Number(answer);
}
ex) num[1] = "one", num[2] = "two"
includes()๋ก ํ์ฌ ์๋จ์ด๊ฐ ๋ฌธ์์ด์ ํฌํจ๋์ด ์๋์ง ํ์ธreplaceAll()์ ์ฌ์ฉํด ํด๋น ์๋จ์ด๋ฅผ ์ธ๋ฑ์ค(์ซ์)๋ก ๋ณํString.prototype.includes()์ replaceAll()์ ํ์ฉํ ๋ฌธ์์ด ์ฒ๋ฆฌ ๋ฐฉ๋ฒ
๋ฐฐ์ด์ ์ธ๋ฑ์ค๋ฅผ ํ์ฉํ ๋ฐ์ดํฐ ๋งคํ ๊ธฐ๋ฒ
๊ฐ์ฒด ๋์ ๋ฐฐ์ด์ ์ฌ์ฉํ์ฌ ์ธ๋ฑ์ค๋ฅผ ํ์ฉํจ์ผ๋ก์จ ์ฝ๋๊ฐ ๋ ๊ฐ๊ฒฐํด์ง
includes()๋ก ํ์ธ ํ ๋ณํํ๋ฏ๋ก ๋ถํ์ํ replaceAll ์ฐ์ฐ์ ์ค์ผ ์ ์์
์ผํญ ์ฐ์ฐ์๋ฅผ ํ์ฉํ์ฌ ์กฐ๊ฑด๋ฌธ์ ํ ์ค๋ก ์ฒ๋ฆฌ