인프런 커뮤니티 질문&답변

sohi0321님의 프로필 이미지
sohi0321

작성한 질문수

자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)

4. 후위식 (postfix) 연산(스택)

코드 리뷰 부탁드립니다!

작성

·

256

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

 

function solution() {
    let answer;
    let calStack = [];

    for(let i of cal) {
        if(isNaN(i)) {
            let num1 = calStack.pop();
            let num2 = calStack.pop();

            let val = 0;
            switch(i) {
                case '+':
                    val = num1 + num2;
                    break;
                case '-':
                    val = num2 - num1;
                    break;
                case '*':
                    val = num1 * num2;
                    break;
                case '/':
                    val = num2 / num1;
                    break;
            }
            calStack.push(val);
        } else calStack.push(Number(i));  // i는 문자이기 때문에 숫자로 바꾸어 stack에 push 해야함
    }
    answer = calStack[0];
    return answer;
}

let cal = "352+*9-";
console.log(solution());

 

switch 문을 이용해서 문제를 풀었는데 괜찮은 코드인가요? 효율성면에서 if문이 switch문보다 좋은지도 궁금합니다.

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

if문이나 switch문이나 별 차이 없습니다. 둘 중 아무걸로 해도 됩니다.

sohi0321님의 프로필 이미지
sohi0321

작성한 질문수

질문하기