Python 23

후위 표기식

#1935 https://www.acmicpc.net/problem/1935 1935번: 후위 표기식2 첫째 줄에 피연산자의 개수(1 ≤ N ≤ 26) 가 주어진다. 그리고 둘째 줄에는 후위 표기식이 주어진다. (여기서 피연산자는 A~Z의 영대문자이며, A부터 순서대로 N개의 영대문자만이 사용되며, 길이 www.acmicpc.net 후위표기식이라는 새로운 개념을 만났다. 기존의 수학 표기법은 중위표기식 이라고 하는데 A + (B*C) - D/E 이렇게 연산자(기호)가 피연산자(수) 사이에 위치한다. 반면에 후위 표기식은 연산자가 피연산자 뒤에 위치하는데, 위 식과 동일한 형태의 식이 ABC*+DE/- 이다. 어떻게 처리하나 고민을 많이 했지만, 역시나 Stack을 사용하면 됐다. 기호가 나오기 전 까지 ..

count를 영리하게

리스트에 있는 원소의 개수를 각각 카운팅 해야하는 상황이 있다. 내가 택했던 방법은 nums = list(map(int, input().split())) num_set = set(nums) counts = dict() for num in num_set: counts[num] = nums.count(num) set을 구한 뒤, list에서 set을 count하는 형태였다. 근데 자꾸 시간초과가 나서 설마 이것 때문인가 하고 찾아보니 def list_to_set(l): s = set() # Repeat n times --> O(n) for x in l: # Add element to set --> O(1) s.add(x) return s 리스트 -> set으로 변환을 할 때에는, 일단 set을 선언한 뒤 리..

728x90