스택

2493번: 탑 첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1 www.acmicpc.net 풀이 과정 아마도 스택 문제에서 괄호 문제 다음으로 많이 나오는 스택 문제 유형인 거 같다. 해당 유형을 처음 접하시는 분들은 일단은 머릿속에 배열의 순서를 생각하면서 카피하시면 왜 스택으로 사용하는지 이해가 갈 것이다. (아님 말고~) 1. 스택처럼 사용할 q라는 배열 안에 입력받은 값의 마지막 값과 인덱스를 각각 넣어준다. 그리고 출력할 answer도 따로 입력받은 n의 크기만큼 할당해준다. 2. n-2 번째 인덱스부터 첫 번째 인덱스까지 검사를 시작한다...
· Language/C++
코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 문제 설명 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다. 먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때 각 배..
· Language/C++
데이터를 일시적으로 저장하기 위해 사용하는 자료구조이며, 입출력 순서는 후입 선출(LIFO - List-in, First-out) 방식을 따른다. stack 클래스를 더욱 효과적으로 사용하기 위해 백준에 있는 스택 문제를 풀 생각이다. std:stack void push(int e) e(정수형)을 맨 위에 추가 int pop() 비어있지 않으면 맨 위에 있는 요소를 삭제하고 반환 void display() 모든 요소들을 출력 int peek() 비어있지 않으면 맨 위에 있는 요소를 삭제하지 않고 반환 int size() 요소들의 개수를 반환 bool isEmpty() 비어있으면 true 아니면 false를 반환 bool isFull() 가득 차 있으면 true 아니면 false를 반환 10828번: 스택..
후위(postfix) 표기법 - 컴퓨터에서 수식 계산 순서는 중위표기식 에서 후위표기식으로 걸쳐서 계산을 한다. 예 ) 2+3*4 --> 234*+ --> 14 - 모두 스택을 사용 후위(postfix) 표기법의 장점 -괄호를 사용하지 않고도 계산 순서를 알 수 있다. -연산자의 우선순위를 고려할 필요가 없다. -수식을 읽으면서 바로 계산할 수 있다. 후위(postfix) 표기 수식 알고리즘 예시 중위 표기 수식의 후위 표기 변환 - 피연산자를 만나면 그대로 출력을 하며 연산자를 만나면 스택에 저장했다가 스택보다 우선순위가 낮은 연산자가 나오면 그때 출력한다. -왼쪽 괄호는 우선순위가 가장 낮은 연산자로 취급하며 오른쪽 괄호가 나오면 스택에서 왼쪽 괄호위에 쌓여있는 모든 연산자를 출력한다.
괄호 검사란? 괄호의 종류로는 대중소([,]), ({,}), ((,))가 있는데 3가지 조건이 성립해야 한다. 조건 1 : 왼쪽 괄호의 개수와 오른쪽 괄호의 개수가 같아야 한다. 조건 2 : 동일 타입의 괄호에서 왼쪽 괄호는 오른쪽 괄호보다 먼저 나와야 한다. 조건 3 : 서로 다른 타입의 괄호 쌍이 서로를 교차하면 안 된다. 괄호 검사 예시 괄호 검사 알고리즘 문자열에 있는 괄호를 차례대로 조사하면서 왼쪽 괄호를 만나면 스택에 push() 오른쪽 괄호를 만나면 pop() 연산으로 스택의 top에 있는 괄호를 꺼냄 - 꺼낼 수 있는 요소가 없으면 즉, 스택이 비어 있으면 조건 2에 위배 - pop 한 왼쪽 괄호와 짝이 맞지 않으면 조건 3에 위배 마지막 괄호까지를 조사한 후에도 스택에 괄호가 남아 있으면..
스택(Stack) 이란? 스택이란 말 그대로 쌓아놓은 더미로 기본적으로 후입선출 방식으로 가장 최근에 들어온 데이터가 가장 먼저 나가는 형식의 자료구조입니다. 스택(Stack)의 연산 - 삽입(push) , 삭제(pop) - is_empty() : 스택이 공백상태인지 검사 - is_full() : 스택이 포화상태인지 검사 - peek(s) : 요소를 스택에서 삭제하지 않고 보기만 하는 연산 스택(stack)의 활용 분야 - 자료의 출력이 입력 순서와 역순으로 이루어져야 하는 경우 유용하며, 문서나 그림, 수식 등의 편집기에서 되돌리기(undo) 기능 --- 수행된 명령어들 중에서 가장 최근에 수행된 것부터 순서적으로 취소할 경우 - 함수 호출에서 복귀 순서를 기록하는 데 사용 - 문서나 소스코드에서 괄호..
행복한쿼콰
'스택' 태그의 글 목록