Published 2022. 7. 18. 17:44
/*
https://school.programmers.co.kr/learn/courses/30/lessons/81301
๋ฌธ์ ์ค๋ช
๋ค์ค์ ํ๋ก๋๊ฐ ์ซ์๋์ด๋ฅผ ํ๊ณ ์์ต๋๋ค. ๋ค์ค๊ฐ ํ๋ก๋์๊ฒ ์ซ์๋ฅผ ๊ฑด๋ฌ ๋ ์ผ๋ถ ์๋ฆฟ์๋ฅผ ์๋จ์ด๋ก ๋ฐ๊พผ ์นด๋๋ฅผ ๊ฑด๋ค์ฃผ๋ฉด ํ๋ก๋๋ ์๋ ์ซ์๋ฅผ ์ฐพ๋ ๊ฒ์์
๋๋ค.
๋ค์์ ์ซ์์ ์ผ๋ถ ์๋ฆฟ์๋ฅผ ์๋จ์ด๋ก ๋ฐ๊พธ๋ ์์์
๋๋ค.
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๋ก ์ฃผ์ด์ง๋๋ค.
์ ํ์๊ฐ ์๋ด
์ ํ์ฑ ํ
์คํธ : 10์ด
*/
const solution = (str) => {
// ์ธ์ ๊ฐ๊ณผ ๋น๊ตํ ๋ฐฐ์ด ์์ฑ
const words = [
'zero',
'one',
'two',
'three',
'four',
'five',
'six',
'seven',
'eight',
'nine',
];
let answer = str;
// ์ ์ด์ ์๊ฐํ๋๊ฑด ๋์ฒดํ ๋ฐฐ์ด์ ์ ์ธํด๋จ์ผ๋, ์ธ์ ๊ฐ์ ์ ์ธํ ๋ฐฐ์ด ๊ฐ์ ๋จ์ด๋ค๋ก ์ชผ๊ฐค๋ ค๊ณ ํ๋ค. ๊ทธ๋์ผ ์ซ์๋ก ๋ณํ์ด ๋๋๊น
// split๊น์ง๋ ์๊ฐํด๋ดค๋๋ฐ ์ดํ ๊ณผ์ ์์ ์ ๋ฅผ ๋จน์๋ค. ์ด์ฐจํผ words์ length๋งํผ ๋์ผ๋ ํญ์ ์ธ๋ฑ์ค ๊ฐ๊ณผ ํด๋น ๋ฐฐ์ด์ ๊ฐ์ด ์ผ์นํ๋ค.
// ์๋ฅผ๋ค์ด, zero๋ ์ธ๋ฑ์ค ๊ฐ์ด 0, one์ ์ธ๋ฑ์ค ๊ฐ์ด 1 ... ์ด๋ ๊ฒ ์ญ ์ธ๋ฑ์ค ๊ฐ์ด ์ผ์นํ๋, ์ด ์ธ๋ฑ์ค ๊ฐ์ ์ฐ๋๊ฑฐ ๊น์ง๋ ์๊ฐํด๋๋๋ฐ ์ด ์ดํ ๊ณผ์ ์์ ์ ๋ฅผ ๋จน์๋ค.
// ๊ฒฐ๊ตญ ๊ตฌ๊ธ๋ง์ผ๋ก join ๋ฉ์๋๋ก ํด๊ฒฐํ๊ฑธ ์ฐพ์๋ดค๋ค....
for (let i = 0; i < words.length; i++) {
let arr = answer.split(words[i]);
// console.log(arr);
answer = arr.join(i);
// console.log('hi', answer); <- ๋ก๊ทธ ์ฐํ๋๊ฑฐ ์ฝ๊ฒ ๋ณด๋ ค๊ณ 'hi' ๋ฌธ์์ด ์ถ๊ฐ
}
return Number(answer);
};
console.log(solution('one4seveneight'));
console.log(solution('23four5six7'));
console.log(solution('2three45sixseven'));
console.log(solution('123'));
์์ฌ์์ด ๋ง์ด ๋จ๋ ๋ฌธ์ .. join ๋ฉ์๋๋ก ์ธ๋ฑ์ค ๊ฐ์ ์ฐ๋๊ฑธ ์ ์๊ฐ์ ๋ชปํ์๊น..
์์ฝ์ง๋ง ๋ชป ํผ๊ฑด ๋ชป ํผ๊ฑฐ๋ค.