본문 바로가기

스택3

중위표기식을 후위표기식으로 변환하기 (Java) 표기식(expression)* 중위표기식(A+B)-C*D/E 처럼 연산자가 직접 연산하는 피연산자 사이에 위치하는 표기식* 후위표기식AB+CD*E/- 처럼 피연산자 뒤에 연산자가 위치하는 표기식배경지식중위표기식을 후위표기식으로 변환하려면 연산에 대한 '우선순위'를 알아야 한다.우선순위는 다음과 같다.소괄호중괄호대괄호^, *, / __제곱, 곱셈, 나눗셈+, - __ 덧셈, 뺄셈소괄호 안에 있는 식을 계산하고, 다음으로 중괄호 안에 있는 식을 계산하고, 다음으로 대괄호 안에 있는 식을 계산한다.변환 방법피연산자는 바로 출력한다.여는 괄호를 만나면 stack에 push 한다.^, *, / 피연산자를 만나면 stack의 peek가 자신과 같은 우선순위인지 파악하고, 같다면 pop을 한 번 하고, 자신을 pus.. 2025. 4. 12.
[S4] 백준 4949 - 균형잡힌 세상 (Python3) https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 각 줄은 마침표(".")로 끝난다 www.acmicpc.net 이 문제보다 한 단계 쉬운 문제는 백준 9012번: 괄호라고 생각한다. 이 문제를 풀고나서 이 문제를 푸는 것을 추천한다. 해결방법 스택을 활용하는 문제이다. bracket 이라는 리스트 변수에 여는 괄호("(", "[")를 담고, 닫는 괄호(")", "]")가 나올 때마다 bracket의 원소를 pop 해주는 방식으로 문제를 풀었다. 코드 while (string:=inpu.. 2023. 1. 14.
[2022 하계 모각코] 4주차 1회 계획 및 결과 4주차 1회 계획 : 컬렉션 프레임워크(collection framework(Map, Stack)) 공부 이번주는 Map, stack, queue에 대한 공부를 하려 한다. 고등학교 친구, 같은 과 선배들과 백준 문제를 통해 Stack에 대한 개념을 알고 있다. 또한 Map은 조금 찾아보니 Python의 딕셔너리와 같은 개념인지라 이번 시간에는 개념은 가볍게 보고, 관련 문제를 풀이해보는 시간을 가지려고 한다. Map은 수학 시간에 배운 함수에서 대응된다 혹은 상을 맺는다(map, mapping)에서 따온 말이라고 한다. Map의 저장 방식은 'key-value'이다. 그래서 어떤 자료를 찾아보고자 한다면 앞부터 순차적으로 탐색하는 것이 아니라 찾으려는 곳만 펼쳐본다고 한다. 이런 글을 보고선 본래 자료.. 2022. 7. 18.