본문 바로가기

스택5

[Data Structure] 스택(Stack) 과 큐(Queue) 스택과 큐는 가장 자주 활용되는 자료구조 중 하나이다. ✨ 스택(Stack) 먼저 들어온 데이터가 나중에 나가는 형식의 자료구조이며, 입출구가 하나이다. 후입선출 (LIFO; Last in First Out) 의 구조를 가지고 있다. 삽입과 삭제가 일어나는 위치를 Top 이라고 한다. 비어있는 스택에서 원소를 추출하려고 할 때는 stack underflow, 스택이 넘치는 경우는 stack overflow 이다. ✨스택 예시 모바일 화면의 경우, 사용자가 현재 보고 있는 화면이 Top 이다. 다음 화면 클릭 시, 새 화면을 Stack 에 추가하고 이동한다. 이전 화면으로 돌아갈 시, 현재 화면을 Stack 에서 지우고 이동한다. ✨ 큐(Queue) 먼저 들어온 데이터가 먼저 나가는 형식의 자료구조이며, .. 2021. 7. 7.
[프로그래머스] 스택/큐(Stack/Queue) : 주식가격 문제 설명 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한 사항 - prices의 각 가격은 1 이상 10,000 이하인 자연수입니다. - prices의 길이는 2 이상 100,000 이하입니다. 입출력 예 Prices Return [1,2,3,2,3] [4,3,1,1,0] 입출력 예 설명 - 1초 시점의 ₩1은 끝까지 가격이 떨어지지 않았습니다. - 2초 시점의 ₩2은 끝까지 가격이 떨어지지 않았습니다. - 3초 시점의 ₩3은 1초뒤에 가격이 떨어집니다. 따라서 1초간 가격이 떨어지지 않은 것으로 봅니다. - 4초 시점의 ₩2은 1초간 가격이 떨어지지 않았습니다. - 5초 .. 2021. 5. 7.
[프로그래머스] 스택/큐(Stack/Queue): 다리를 지나는 트럭 문제 설명 트럭 여러 대가 강을 가로지르는 일 차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 트럭은 1초에 1만큼 움직이며, 다리 길이는 bridge_length이고 다리는 무게 weight까지 견딥니다. ※ 트럭이 다리에 완전히 오르지 않은 경우, 이 트럭의 무게는 고려하지 않습니다. 예를 들어, 길이가 2이고 10kg 무게를 견디는 다리가 있습니다. 무게가 [7, 4, 5, 6]kg인 트럭이 순서대로 최단 시간 안에 다리를 건너려면 다음과 같이 건너야 합니다. 따라서, 모든 트럭이 다리를 지나려면 최소 8초가 걸립니다. solution 함수의 매개변수로 다리 길이 bridge_length, 다리가 견딜 수 있는 무게 weight, 트럭.. 2021. 5. 7.
[프로그래머스] 스택/큐(Stack/Queue): 프린터 문제 설명 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린터를 개발했습니다. 이 새롭게 개발한 프린터는 아래와 같은 방식으로 인쇄 작업을 수행합니다. 1. 인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냅니다. 2. 나머지 인쇄 대기목록에서 J보다 중요도가 높은 문서가 한 개라도 존재하면 J를 대기목록의 가장 마지막에 넣습니다. 3. 그렇지 않으면 J를 인쇄합니다. 예를 들어, 4개의 문서(A, B, C, D)가 순서대로 인쇄 대기목록에 있고 중요도가 2 1 3 2 라면 C D A B 순으로 인쇄하게 됩니다. 내가 인쇄를 요청한 문서가 몇 번째로 인쇄되는지 .. 2021. 5. 7.
[프로그래머스] 스택/큐(Stack/Queue): 기능개발 문제 설명 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다. 먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때 각 배포마다 몇 개의 기능이 배포되는지를 return 하도록 solution 함수를 완성하세요. 제한 사항 - 작업의 개수(progresses, speeds배열의 길이)는 100개 이하입니다. - 작업 진도는 100 미만의 자연수입니다. - 작업 속도는 100.. 2021. 5. 7.