• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

코드 리뷰 부탁드립니다!

23.06.20 18:08 작성 조회수 207

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문이나 별 차이 없습니다. 둘 중 아무걸로 해도 됩니다.