문제: 하나의 배열 dual_stack[MAX_SIZE]에서 두 개의 스택을 운영하는 이중 스택에 대하여, 첫 번째 스택인 스택_1의 push_1(), pop_1() 함수와 두 번째 스택인 스택_2의 push_2(), pop_2() 함수를 각각 작성하라. 단, 스택_1의 bottom은 –1, 스택_2의 bottom은 MAX_SIZE이며 각 스택에서 stack_full 및 stack_empty 조건을 반드시 체크해야 한다. 예시 답안: 풀이 및 코드는 다양할 수 있습니다 void push_1 (int *top1, int top2, element x) { if( top1 == (top2 - 1) ){ printf(“스택 포화 에러\n”); return; } else { top1++; dual_stack[to..
문제 링크: www.acmicpc.net/problem/1918 1918번: 후위 표기식 첫째 줄에 중위 표기식이 주어진다. 단 이 수식의 피연산자는 A~Z의 문자로 이루어지며 수식에서 한 번씩만 등장한다. 그리고 -A+B와 같이 -가 가장 앞에 오거나 AB와 같이 *가 생략되는 등의 수식 www.acmicpc.net 후위 표기식과 후위 표기식 변환 알고리즘에 대한 자세한 설명은 아래 포스트에서 확인할 수 있다. 후위 표기식과 변환 알고리즘에 대한 자세한 설명 후위 표기식 변환 및 계산 알고리즘 수식 표기 방법 수식 표기 방법에는 전위, 중위, 후위 표기법이 있다. 우리가 일반적으로 사용하는 표기법은 중위 표기법이다. 중위 표기법: 연산자가 피연산자 가운데 위치. 전위 표기법: 연산 crong-dev.t..
수식 표기 방법 수식 표기 방법에는 전위, 중위, 후위 표기법이 있다. 우리가 일반적으로 사용하는 표기법은 중위 표기법이다. 중위 표기법: 연산자가 피연산자 가운데 위치. 전위 표기법: 연산자가 피연산자 앞에 위치. 후위 표기법: 연산자가 피연산자 뒤에 위치. 중위 표기법 전위 표기법 후위 표기법 1+3*8 +1*38 138*+ 2*5-7 -*257 25*7- (a+b)+4 ++ab4 ab+4+ 컴퓨터에서 수식을 계산하는 순서 중위 표기식을 후위 표기식으로 변환 후위 표기식을 계산 1, 2단계 모두에서 스택을 활용한다. 중위 표기식에서 후위 표기식으로 변환 중위표기식과 후위표기식의 공통점은 피연산자의 순서가 동일하다는 것이다. 둘은 연산자 순서만 다르다. 연산자만 스택을 활용해 저장했다가 출력하면 된다...
문제 링크: www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마 www.acmicpc.net 스택을 활용한 문제이다. 여는 괄호가 나왔을 때 스택에 넣어주고, 닫는 괄호가 나왔을 때 스택의 top(제일 최근에 들어간 여는 괄호)와 짝이 맞는지 확인한다. 짝이 맞지 않으면 flag를 false로 바꾸고 반복문을 탈출한다. 짝이 맞지 않는 경우가 없었어도 마지막에 여는 괄호만 나오고 닫는 괄호가 나오지 않았으면 올바른 문자열이 아니다. 이 경우 스택에 원소가 남아있다. flag가..
문제 링크: www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net C++의 스택 STL을 사용해 문제를 해결했다. 아래 포스트 참고 : crong-dev.tistory.com/13 [자료구조] 스택(stack) / 백준 10828 (C++) 지난 포스트에서 스택에 대해 알아보았다. 이전 포스트: https://crong-dev.tistory.com/10 [자료구조] 스택(stack) / 백준 10828 (C) 스택이란? 삽입과 제거가 한쪽 끝에서..
지난 포스트에서 스택에 대해 알아보았다. 이전 포스트: https://crong-dev.tistory.com/10 [자료구조] 스택(stack) / 백준 10828 (C) 스택이란? 삽입과 제거가 한쪽 끝에서만 이루어지는 특수한 선형 리스트. 후입 선출(Last-In-First-Out) 구조이다. 즉, 가장 마지막에(최신에) 들어온 데이터가 가장 먼저 나간다. 스택의 주요 연산 - p crong-dev.tistory.com 이번 포스트에서는 c++에서 스택 사용법에 대해 알아보겠다. C++에서는 지난 포스트에서 C언어로 한 것 처럼 함수를 일일이 구현할 필요가 없다. 스택 헤더가 있기 때문이다! #include 위 처럼 스택 헤더를 include해주면 된다. 스택 생성 방법 // stack 스택 변수 이..
문제 링크: www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 소스 코드: #include #include #define MAX_STACK_SIZE 10000 int stack[MAX_STACK_SIZE]; // 스택 배열 int topIndex = -1; // 스택의 top의 인덱스 // push X: 정수 X를 스택에 넣는 연산이다. void push(int x) { stack[++topIndex] = x; } // pop: 스택에서 가장..
스택이란?삽입과 제거가 한쪽 끝에서만 이루어지는 특수한 선형 리스트.후입 선출(Last-In-First-Out) 구조이다. 즉, 가장 마지막에(최신에) 들어온 데이터가 가장 먼저 나간다. 스택의 주요 연산- push(): 스택에 원소 삽입 - pop(): 스택에서 원소 제거 (후 그 값을 반환) - top()/peek(): 가장 위에 있는 원소 반환 - isEmpty(): 스택이 비었는지 확인 - isFull(): 스택이 가득 찼는지 확인 아래는 C언어로 스택의 주요 연산을 구현한 것이다. 백준 10828문제의 소스코드이다.(문제링크: www.acmicpc.net/problem/10828)#include #include #define MAX_STACK_SIZE 10000 int stack[MAX_STAC..
- Total
- Today
- Yesterday
- 자료구조
- 리액트
- dash-plotly
- JS
- 백준
- 후위표기식
- 알고리즘
- 코테후기
- 회고
- c++
- React
- Dash
- 큐
- 컴퓨터공학
- plotly
- reactjs
- 코드포매터
- 컴퓨터과학
- MySQL
- 우선순위큐
- 자바스크립트
- 프로그래머스
- 스택
- 개발
- 동적계획법
- 카카오추천팀
- 다이나믹프로그래밍
- sql
- 머신러닝
- dfs
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |