본문 바로가기

후위표기식

(2)
[백준1935번] (C) 후위표기식2 (1935)후위표기식 백준 1935번 https://www.acmicpc.net/problem/1935 착안점 double형 스택을 구조체로 선언 +, -, *, /인 경우를 제외하면 피연산자이므로 int형 배열에 있는 원소를 push 테크닉 push(ch-'A') 입력 예제를 보면, ABCDE와 같은 피연산자는 숫자로 변환한 뒤, push해줘야 한다. 피연산자는 항상 A, B, 부터 입력되므로 array 배열에 있는 원소들을 차곡차곡 push하기 위해서는 ch-'A'만큼 빼주어야 한다. 맨 처음에 입력하는 num이 곧 array 배열의 길이기 때문에 AA+A+ 입력된다 할지라도 상관이 없다. 실수했던 점 calculate 함수의 parameter를 double로 선언하지 않았던 점. 함수(pop, pe..
[백준1918번] (C) 후위표기식 백준 1918번 착안점 각 연산자(operator)의 우선순위값을 return해주는 isOperator 함수를 만들어줬다. (, ) : 우선순위 0 +, - : 우선순위 1 *, / : 우선순위 2 피연산자 : 우선순위 -1 (즉, A, B, C) postfix함수가 가장 중요한 함수라고 할 수 있다. for문을 이용해 글자 하나하나씩 읽어나간다. 우선순위 -1 : 피연산자는 그대로 출력 열린괄호 ( : 스택에 push 닫힌괄호 ) : 스택에 있는 (를 만날 때까지 pop 우선순위 1 이상 스택이 비어있지 않고 && 스택에 있는 연산자의 우선순위가 더 높다면 pop 그외의 경우라면 스택에 push 맨 마지막에서는 스택에 남아있는 것이 없도록 모두 pop #include #include #define MA..