목록Stack (5)
seunghyun Note
단일 연결 리스트 이중 연결 리스트 스택 & 큐 (배열로 하는 방법은 숙지했음! linked list로 구현해 보기) 이진 검색 트리 트리 순회 이진 힙 해시 테이블 (사용해 봤지만 복습) 그래프, 그래프 순회 다익스트라 알고리즘 동적 프로그래밍 스택은 후입선출 원칙에 따라 데이터를 추가하고 제거하는 데이터 구조이다. 배열을 사용할 때 js 내에 stack.pop(), stack.push(value) ,stack.unshift(value) 등이 있지만 이것을 기계적으로 사용하다보면 문제를 바라볼 때 이해가 안될때가 많다. 그렇기 때문에 linked list를 통해 원리를 이해하는 것이 중요하다. Stack class setting Node 클래스는 연결리스트이기 때문에 똑같다. stack은 연결리스트에서..
링크 : https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 스택문제 여러개 풀고 있다. 스택 다 풀면 heap 공부할 예정.. heap이 끝나면..? 큐 공부와 우선순위 큐를 공부해야한다. 단계적으로....! c언어로 구현할때는 링크드리스트로 노드 생성해서 귀찮아서 포기했는데 JS로 선택하길 잘했다.. 왜 다들 python, js로 코테 공부하라고 하는지 알겠음 문제 풀이 코드를 치면서 함수도 만들고 그 함수를 통해..
링크 : https://www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net 문제 풀이 stack의 pop과 push로만 해결할 수 있다! const fs = require("fs"); //const input = require("fs").readFileSync("/dev/stdin").toString().split("\n"); const input = fs.readFileSync("예제.txt").toString().trim()..
링크 : https://school.programmers.co.kr/learn/courses/30/lessons/76502 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 1. 스택으로 문제를 해결하기 2. 열리는 괄호는 3종류이다. '[' , '(', '{' 로 구성되어 있고 닫는 괄호와 짝을 맞춰야 한다. 3. 일단 stack이 empty 일 경우에는 push를 한다. 4. 처음 스택을 peek 했을 때 다음 값이 닫는 괄호일 경우에는 pop을 해준다. 결국 우리는 [] () {} 일때 pop을 해서 stack 을 empty로 바꾸는게 목적이..
링크 : https://school.programmers.co.kr/learn/courses/30/lessons/12973 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 공부했던 스택의 응용 버전이였다. 스택을 사용한다면 매우 간단한 문제..! import java.util.Stack; class Solution { public int solution(String inputString) { Stack stack = new Stack(); // 문자열을 순회하며 스택에 문자를 추가하거나 제거합니다. for (int i = 0; i < inputS..