파비의 매일매일 공부기록

Today's Challenge 본문

Problem Solving/LeetCode

Today's Challenge

fabichoi 2022. 11. 20. 23:45

https://leetcode.com/problems/basic-calculator/

 

Basic Calculator - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

계산기는 스택이 기본.. =_=

class Solution:
    def calculate(self, s: str) -> int:
        num, sign, st = 0, 1, [0]
        
        for c in s:
            if c.isdigit():
                num = num * 10 + int(c)
                
            elif c == ' ':
                continue
            
            elif c == '+':
                st[-1] += num * sign
                sign = 1
                num = 0
            
            elif c == '-':
                st[-1] += num * sign
                sign = -1
                num = 0
                
            elif c == '(':
                st.extend([sign, 0])
                sign = 1
                num = 0
                
            elif c == ')':
                last_num = (st.pop() + num * sign) * st.pop()
                st[-1] += last_num
                sign = 1
                num = 0
        
        return st[-1] + num * sign
반응형

'Problem Solving > LeetCode' 카테고리의 다른 글

Today's Challenge  (0) 2022.11.22
Today's Challenge  (0) 2022.11.21
Today's Challenge  (0) 2022.11.19
Today's Challenge  (0) 2022.11.18
Today's Challenge  (0) 2022.11.17
Comments