스택
[JavaScript] 프로그래머스 - 프린터
문제 해결 1. 인쇄되는 조건과 내 문서의 위치 그리고 인쇄가 몇번 됐는지 체크하며 문제를 해결한다. 2. 맨 앞의 문서를 꺼내고 우선순위가 제일 높은지 확인한다. 3. 우선순위가 제일 높다면 인쇄를 하고 카운트를 올려준다. 4. 아니라면 꺼낸 문서를 맨 뒤에 집어 넣는다. 5. 문서를 꺼낼 때마다 내문서의 위치를 바꿔준다. 6. 다시 2번으로 돌아가 반복한다. 😎 스택/큐 문제이다. 소스 코드 function solution(priorities, location) { var answer = 0; // 인쇄를 몇번 했는지 var cnt = 0 // 내문서의 위치 var myDoc = location while (priorities.length > 0) { // 맨 앞의 문서를 꺼낸다 var c = pri..
[JavaScript] 프로그래머스 - 기능개발
문제 해결 1. 큐/스택을 활용하는 문제! 2. 현재 진행 상황(progresses) 에 각각 속도(speeds)를 더해준다. 3. 뒤에있는 기능이 앞의 기능보다 먼저 개발 돼도 배포가 불가능 (1) 맨 앞의 기능부터 확인해 준다. (2) 맨 앞의 기능이 개발 완료 됐다면 배포한다(배열에서 제거한다.) (3) 개발 완료 되지 않았다면 2번으로 간다 🌤 큐/스택을 활용하는 문제 splice를 이용했는데 pop과 shift라는 메소드가 존재하는 것을 알게 됐다. 🛴 pop. shift var arr = [1,2,3,4,5] arr.pop() console.log(arr) // [ 1, 2, 3, 4 ] arr.shift() console.log(arr) // [ 2, 3, 4 ] pop은 배열의 마지막에 있..
[python] 백준 - 10799. 쇠막대기
문제 해결 1. 스택을 활용한 문제. S3 2. '(' 가 나오면 막대기의 시작점이라 생각하고 stack 에 쌓는다. 3. ')' 이 나왔을 때 두가지의 경우 (1) 이전에 '(' 가 나온 경우: 쇠막대기가 아니라 레이저 이므로 잘라준다. (2) 이전에 ')' 가 나온 경우: 쇠막대기의 끝 부분 이다. 4. 레이저로 자른경우는 stack 에 쌓여있는 막대기만큼 count를 더해준다. 5. 쇠막대기의 끝부분이 나온경우 막대히 하나만큼 count를 더해준다. 🚗 소스 코드 bars = input() stack = [] cnt = 0 # '('를 막대기의 시작점으로 주고 '()' 이렇게 여는괄호와 닫는괄호가 연속으로 나오면 레이저로 취급한다. for i in range(len(bars)): if bars[i]..