본문 바로가기

스택

(2)
[CodingTest] 쇠막대기, Stack 푸는데 어려웠던 문제 거나, 생소한 개념이 있는 문제들을 기록하려 한다. 이번 문제는 stack을 활용하여 푸는 것이었는데, 지문만 보고 해답을 찾기가 어려웠었다. 그래서 상세하게 풀이를 적어보고 복습하기 위해서 포스팅한다. 1. 문제 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에 서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저의 배치는 다음 조건을 만족한다. • 쇠막대기는 자신보다 긴 쇠막대기 위에만 놓일 수 있다. - 쇠막대기를 다른 쇠막대기 위에 놓는 경우 완전히 포함되도록 놓되, 끝점은 겹치지 않도록 놓는다. • 각 쇠막대기를 자르는 레이저는 적어도 하나 존재한다. • 레이저는 어떤 쇠막대기의 양 끝점과도 겹..
[Algorithm] 스택(Stack) 자료구조 1. Stack 스택은 한쪽에서만 데이터를 넣고 뺄 수 있는, 후입선출(LIFO) 형태의 자료구조를 말한다. 후입선출(Last In First Out)은 가장 먼저 들어간 것이 가장 나중에 나오는 것을 의미한다. 따라서 자바스크립트에서 스택을 구현하려면, 배열의 Push와 Pop을 사용하면 된다. 2. 예시 입력된 문자열에서 소괄호 ( ) 사이에 존재하는 모든 문자를 제거하고 남은 문자만 출력하는 프로그램을 작성하세요. function solution(s) { let answer = ''; let stack = []; for (const x of s) { if (x === '(') stack.push(x); else if (x === ')') stack.pop(); else { if (stack.leng..