전체 글 50

(간단한 코드)리트코드 150. Evaluate Reverse Polish Notation

숫자는 그냥 리스트에 넣고, "기호"가 들어오면, "앞의 숫자"와 "앞의앞 숫자"와 계산을 하면 되는 이해하기 쉬운 문제다. 이 문제는 노가다를 하면 된다(실제로는 대부분 같은 코드를 복붙하면 된다)class Solution: def evalRPN(self, tokens: List[str]) -> int: ans = [] for t in tokens: if t == '+': cur = ans.pop() #중복 pre = ans.pop() #중복 ans.append(pre + cur) elif t == '-': cur = ans.p..

(간단한 코드)리트코드 20. Valid Parentheses

괄호가 제대로 닫혀 있는지 확인 하는 문제이다.  처음에는 two pointer을 사용해서 확인해야 하나? 아니면 하나하나 일일히 기록해야 하나?라는 생각을 많이 했지만, 전혀 다른 방식으로 푸는 것이었다. 우선 여기서 사용되는 것은 딕셔너리와 stack이라는 개념이다.stack이 생소할 수 있지만, 리스트를 활용한다 라고 생각하면 된다. 우선 사전 준비를 해야 하는데, 다음과 같다.ans = [] # answer의 약자bracket = {')':'(', '}':'{', ']':'['} 이렇게 준비하는 이유는 ans라는 빈 리스트 안에는 괄호의 왼쪽 부분만 넣을 거기 때문이다. -> ( { [  이 녀석들만 넣을 것이다. 그리고 "괄호의 오른쪽 부분"이 나타날 경우에는, 기존에 있는 ans의 "마지막" ..

(간단한 코드)리트코드 682. Baseball Game

이 문제는 숫자와 문자 그리고 기호가 섞여 있는 리스트를 통해 각 조건을 만족시키면서 점수를 계산 하는 것을 의미한다. 이 문제를 푸는 방법은 생각보다 간단하다. 그냥 if문을 주구장창 쓰면 된다.class Solution: def calPoints(self, operations: List[str]) -> int: score = [] for lead in operations: if lead == '+': score.append(score[-2]+score[-1]) elif lead == 'C': score.pop() elif lead == 'D': ..