스택 4

프로그래머스/크레인 인형뽑기 게임/2019 카카오 개발자 겨울 인턴십/C++

문제 설명 : 왼쪽의 보드에서 각 컬럼의 맨 위에 있는 인형을 집어 오른쪽의 바구니로 옮기는 과정을 실시한다. 오른쪽 바구니의 격자 아래칸부터 차곡차곡 쌓이게 된다. 이때 오른쪽 바구니에서 같은 모양이 두 개가 겹쳐지면 두 인형은 떠뜨려지면서 사라진다. 인형이 집어지지 않는 경우는 없고, 인형이 없는 곳에서 크레인 작동시키는 경우에는 아무 일도 일어나지 않는다. 오른쪽의 바구니는 모든 인형이 들어갈 수 있을 만큼 충분히 크다. 오른쪽의 바구니를 스택으로 구현하여 스택의 top 원소와 집어넣고자 하는 원소의 값이 일치하면 스택을 pop하는 방식으로 풀면 된다. 스택을 이용하는 간단한 문제. #include #include #include using namespace std; int push(stack &s..

프로그래머스/주식가격(스택,큐)/C++

스택, 큐 문제지만 이번에도 스택과 큐 없이 풀었다.. 프로그래머스의 문제 분류는 보면 항상 '그 자료구조를 꼭 써야지 풀리는 문제'라기보다는 '그 자료구조를 써서 풀 수도 있기는 한 문제'인 듯하다. 주의할 점 : '질문하기'를 보면 알 수 있지만, 효율성에 연연하지 않고 정확한 답을 푸는 것에 집중하면 어떻게든 풀린다. 추가할만한 테스트 케이스는 prices가 [1,2,3,2,3,1]인 경우, return값은 [5, 4, 1, 2, 1, 0]이 나와야 한다. #include #include #include using namespace std; int find_smaller(int i, vector &prices){ int index = 0; for(int k = 1; k < (prices.size()..

프로그래머스/기능개발(스택,큐)/C++

스택/큐 분야로 분류되었던 문제이다. 스택이랑 큐를 쓰지 않고도 풀 수 있다는 게 함정이지만! #include #include using namespace std; vector solution(vector progresses, vector speeds) { vector answer; while(true){ for(int i =0; i= 100){ int value = 1; for(int j = 1; j= 100) value++; else break; } answer.push_back(value); progresses.erase(progresses.begin(), progresses.begin()+value); speeds.erase(speeds.begin(), speeds.begin()+value); }..

스택의 구현과 응용; 괄호 검사, 수식 계산

스택 -> 삽입과 제거가 한쪽 끝에서만 이루어지는 특수한 선형 리스트. 후입선출(LIFO) 구조. ○ 스택 ADT create(s) :: = 스택 s를 생성한다. is_empty(s) :: = 스택 s가 비어있는지를 검사한다. is_full(s) :: = 스택 s가 가득 찼는가를 검사한다. push(s,e) :: = 스택 s에 원소 e를 삽입한다. pop(s) :: = 스택 s에서 가장 최근에 삽입된 원소(top 위치에 있는 원소)를 삭제하면서 그 값을 반환한다. peek(s) :: = 스택 s에서 가장 최근에 삽입된 원소(top 위치에 있는 원소)의 값을 반환한다. ○ 스택의 구현 · 배열을 이용한 스택의 구현 : 1차원 배열 stack[], 가장 최근에 입력되었던 자료를 가리키는 변수 top. 공백상..

CS/자료구조(DS) 2021.02.16