본문 바로가기

스택5

[자료구조][스택] 중위 수식 변환 프로그램 c구현 목차 자료구조에서 스택을 활용한 후위 수식과 관련된 문제를 풀고 공부하고자 한다.   기본 스택 구조체(단항 연산자때문에 rank를 따로 만들어주었다.)typedef struct Node { char data; int rank; struct Node* next;}Node;typedef struct Stack { Node* head; Node* cur; int size;}Stack;  스택의 필요한 ADT// 스택 초기화 함수void init(Stack* s) { s->size = 0; s->head = (Node*)malloc(sizeof(Node)); s->head->next = NULL;}// 스택에 데이터를 추가하는 함수void push(Stack* .. 2024. 5. 5.
[자료구조][배열][스택] c 코드 구현 목차 자료구조를 공부하며 스택 구현을 배열로 해 보았다 -스택으로 구현할 ADT들-- push(stack, ‘c’) : stack의 top에 데이터를 추가한다. stack이 이미 꽉 차있으면 해당 데이터 는 스택에 저장하지 않고 “Stack FULL”을 출력한다. - pop (stack) : stack의 top에 있는 데이터를 반환하고 stack에서 제거한다. stack이 비어 있 으면 “Stack Empty”를 출력한다. - peek(stack): stack의 top에 있는 데이터를 화면에 출력한다. stack은 변화하지 않는다.  stack이 비어 있으면 “Stack Empty”를 출력한다. - duplicate(stack): stack의 top에 있는 데이터를 pop해서 두 번  push 한다. s.. 2024. 4. 28.
[백준][스택] 9935 문자열 폭발 c++구현 목차 https://www.acmicpc.net/problem/9935 9935번: 문자열 폭발 첫째 줄에 문자열이 주어진다. 문자열의 길이는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 둘째 줄에 폭발 문자열이 주어진다. 길이는 1보다 크거나 같고, 36보다 작거나 같다. 두 문자열은 모 www.acmicpc.net 문제 문제 구현 시 주의점 문자 길이가 매우 길기 때문에 시간복잡고다 O(N^2) 나오게 되면 시간초과가 되므로 주의해야 한다. 하지만 비교 문자열의 크기는 36으로 매우 작으므로 스택을 통해 검사하면서 넣어 주게 되면 O(N)시간 복잡도를 가질 수 있다. 문제 풀이 비교 문자열이 12ab라면 b인 끝 문자열과 같지 않다면 그냥 스택에 넣어준다. 끝 문자열과 같다면 기존 스택에.. 2024. 4. 1.
[백준][스택] 3986 좋은 단어 c++구현 목차 https://www.acmicpc.net/problem/3986 3986번: 좋은 단어 이번 계절학기에 심리학 개론을 수강 중인 평석이는 오늘 자정까지 보고서를 제출해야 한다. 보고서 작성이 너무 지루했던 평석이는 노트북에 엎드려서 꾸벅꾸벅 졸다가 제출 마감 1시간 전에 www.acmicpc.net 문제 문제 풀이 스택이 비어있다 -> 문자를 넣어준다. 스택이 비어있지 않다 -> 1.스택의 top값과 들어갈 값이 같으면 스택에서 pop해준다. 2.스택의 top값과 들어갈 값이 다르면 그냥 넣어준다. 문자열을 다 순회한후 스택이 비어있다면 1, 비어있지 않다면 0을 리턴해 준다. 코드 구현 #include #include #include using namespace std; int check(str.. 2024. 3. 30.
728x90