๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ฝ”๋”ฉํ…Œ์ŠคํŠธ/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

[Javascript] ์ˆซ์ž ๋ฌธ์ž์—ด๊ณผ ์˜๋‹จ์–ด (81301)

๋ฌธ์ œ ๋งํฌ

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์ˆซ์ž ๋ฌธ์ž์—ด๊ณผ ์˜๋‹จ์–ด

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

programmers.co.kr

 

์ ‘๊ทผ๋ฐฉ๋ฒ•

์šฐ์„  ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ํ†ตํ•ด ์ˆซ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด์€ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

๊ทธ ๋‹ค์Œ forEach๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋งŒ๋“ค์–ด ๋†“์€ numList๋ฅผ ์ˆœํšŒํ•˜๋Š”๋ฐ

์ด๋•Œ split์œผ๋กœ ๋งŒ์•ฝ numList์˜ el์™€ answer์— ๊ฐ™์€ ๋ฌธ์ž์—ด์ด ์žˆ๋‹ค๋ฉด ์ด๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋‚˜๋ˆ•๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋‚˜๋ˆˆ newArr๋ฅผ index๋ฒˆํ˜ธ(zero => 0, one => 1..)๋กœ joinํ•˜๋ฉด ๋ฌธ์ž์—ด์ด ์ˆซ์ž๋กœ ๋ณ€ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

๋งˆ์ง€๋ง‰์œผ๋กœ parseInt๋กœ ํ˜•๋ณ€ํ™˜์„ ํ•˜๋ฉด ์ž˜ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

 

function solution(s) {
    var answer = s;

    const numList = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]

     if (typeof(parseInt(answer)) === NaN){
        return parseInt(answer);
    }

    numList.forEach((el, idx) => {
        const newArr = answer.split(el);
        answer = newArr.join(idx);
    })

    return parseInt(answer);
}