본문 바로가기

Stack

(3)
[백준] 2493 - 탑 교수님이 어렵다고 하셔서 쫄아있었는데 정말 어렵다 ,, ^^!; 야구 문제가 여러 알고리즘들이 섞이고, 야구의 룰에 따라 값들을 관리해줘서 어렵다면 이 문제는 나오는 자료구조는 스택 하나 뿐인데 그 스택을 단순한 LIFO + 다른 기능을 추가적으로 생각해봐야한다. 사실 스택문제라는 걸 알기 전까진 이 문제가 스택으로 풀릴 수 있을 거란 생각조차 못했고, 브루트포스인가 하고 생각했었다. 하지만 완전탐색이라고 하기엔 입력 범위가 너무 컸으며, 완전탐색으로 코드를 짰더니 백준에선 틀렸다고 하고, 정올에선 시간초과 에러가 났다.. 이때부터 ㄹㅇ 멘붕 시작ㅋㅋㅋㅋㅋㅋㅋㅋㅋ 한시간 가량 짠 코드가 아까웠지만... 이럴 땐 과감히 버려야 한다는 교수님의 말씀이 기억나서 과감히 버리고 스택으로 접근을 시도해보았다. 각..
후위 표기법 (Postfix Notation) 중위표기법 (infix notation) - 연산자가 피연산자들 사이에 위치 예) (a+b)*(c+d) 후위표기법 (postfix notation) - 연산자가 피연산자들의 뒤에 위치 예) ab+cd+* [중위 표현식을 후위 표현식으로 변경하기 (feat.스택)] a*b+c => ab*c+ a+b*c =>abc*+ //문자는 그 순서 그대로, (피연산자1)(피연산자2)(연산종류) 이 형태 유지 1) 스택에 넣기 피연산자인 경우 바로 print 연산자는 stack 에 push ->우선순위가 더 높(거나같 - 먼저나온게 우선임)은게 들어있다면(지금 넣는 것보다 먼저 해야 하니까), pop 하고나서 push ->우선순위가 더 낮은게 들어있다면, 지금 있는 것보다 위에 있어야 하므로 push 수식의 끝까지 왔을..
스택(Stack) in Python [ 스택이란? ] - 자료를 보관할 수 있는 선형 구조. 한쪽 끝에서 밀어넣고(push) 같은 쪽에서부터 뽑아쓴다.(pull) - 후입선출(LIFO - Last In, First Out) [ 스택 언더플로우 & 스택 오버플로우 ] - 스택 언더플로우(stack underflow): 비어있는 스택에서 데이터 원소를 꺼내려고 할 때 발생하는 에러 - 스택 오버플로우(stack overflow): 꽉 찬 스택에 데이터 원소를 넣으려 할 때 발생하는 에러 [ 스택의 추상적 자료구조 구현 ] 1. 구현 방법 1) 배열 이용 - Python의 리스트와 메서드를 이용하여 스택을 구현한다. 2) 연결리스트 이용 - 양방향 연결리스트를 이용하여 스택을 구현한다. 2. 연산의 정의 1) size() - 현재 스택에 들어있..