๊ด€๋ฆฌ ๋ฉ”๋‰ด

Daehyunii's Dev-blog

ํ›„์œ„์‹ ์—ฐ์‚ฐ(์ž๋ฃŒ๊ตฌ์กฐ-์Šคํƒ) ๋ณธ๋ฌธ

๐Ÿ“š Language & CS knowledge/Algorithm (๊ธฐ์ดˆ๋ฌธ์ œํ’€์ด)

ํ›„์œ„์‹ ์—ฐ์‚ฐ(์ž๋ฃŒ๊ตฌ์กฐ-์Šคํƒ)

Daehyunii 2022. 9. 2. 17:50

๋ฌธ์ œ(์ถœ์ฒ˜ : ์ธํ”„๋Ÿฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ’€์ด ๊ฐ•์˜, ์ •๋ณด์˜ฌ๋ฆผํ”ผ์•„๋“œ)

 

ํ›„์œ„์—ฐ์‚ฐ์‹์ด ์ฃผ์–ด์ง€๋ฉด ์—ฐ์‚ฐํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์„ธ์š”. ๋งŒ์•ฝ 3*(5+2)-9 ์„ ํ›„์œ„์—ฐ์‚ฐ์‹์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉด 352+*9- ๋กœ ํ‘œํ˜„๋˜๋ฉฐ ๊ทธ ๊ฒฐ๊ณผ๋Š” 12์ž…๋‹ˆ๋‹ค.

โ–ฃ ์ž…๋ ฅ์„ค๋ช…
์ฒซ ์ค„์— ํ›„์œ„์—ฐ์‚ฐ์‹์ด ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ์—ฐ์‚ฐ์‹์˜ ๊ธธ์ด๋Š” 50์„ ๋„˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‹์€ 1~9์˜ ์ˆซ์ž์™€ +, -, *, / ์—ฐ์‚ฐ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„๋‹ค.

โ–ฃ ์ถœ๋ ฅ์„ค๋ช…
์—ฐ์‚ฐํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

 

โ–ฃ ์ž…๋ ฅ์˜ˆ์ œ 1

352+*9-

 

โ–ฃ ์ถœ๋ ฅ์˜ˆ์ œ 1

12

 

Tip

 

๋ฌธ์ œํ’€์ด

//๊ฐ•์˜ ๋“ฃ๊ณ  ๋‚ด๊ฐ€ ๋‹ค์‹œ ์ž‘์„ฑํ•œ ๋‹ต
function solution(string){
    let answer;
    let stack = [];

    for(let x of string){
        if(!isNaN(x)) {
            console.log(x);
            stack.push(Number(x));
        }else{
            let rightPoint = stack.pop();
            let leftPoint = stack.pop();
            if(x === '+') stack.push(leftPoint + rightPoint);
            else if(x === '-') stack.push(leftPoint - rightPoint);
            else if(x === '*') stack.push(leftPoint * rightPoint);
            else if(x === '/') stack.push(leftPoint / rightPoint);
        }
    }
    answer = stack[0];
    return answer;

}

    let str="352+*9-";
console.log(solution(str),'hellooooo');