백준/스택
-
백준 2812 nodejs백준/스택 2023. 2. 21. 17:11
문제 https://www.acmicpc.net/problem/2812 2812번: 크게 만들기 N자리 숫자가 주어졌을 때, 여기서 숫자 K개를 지워서 얻을 수 있는 가장 큰 수를 구하는 프로그램을 작성하시오. www.acmicpc.net 풀이 Stack을 이용한다. K의 값이 존재하는 한 수를 왼쪽부터 오름차순이 되도록 지워야 한다. 수 전체를 반복하고도 K가 남아있는 경우 뒤에서부터 잘라준다. let [[, K], [X]] = `${require('fs').readFileSync(0)}`.trim().split`\n`.map(e => e.split` `) const S = [] for (let i in X) { while (S.length && S[S.length - 1] 0..
-
백준 9935 nodejs백준/스택 2023. 1. 7. 15:46
문제 https://www.acmicpc.net/problem/9935 풀이 스택에 문자열 A를 하나씩 담다가 스택의 끝부분이 문자열 B라면 스택에서 꺼내준다. let [A, B] = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n') let [stack, l] = [[], B.length] loop: for (let i = 0; i < A.length; i++) { stack.push(A[i]) if (stack.length < l) continue for (let j = 1; j