본문 바로가기
CS/Algorithm

백준 1874

by KJY 2021. 5. 17.

문제

https://www.acmicpc.net/problem/1874

 

1874번: 스택 수열

1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다.

www.acmicpc.net

 

사용 언어

javaScript

 

풀이

let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split('\n');
// const input = ['8', '4', '3', '6', '8', '7', '5', '2', '1']; 
// const input = ['5', '1', '2', '5', '3', '4'];
const count = Number(input[0]);

let stackNumber = 1;
let stack = [];
let result = [];
for (i = 1; i < count + 1; i++) {
  let target = Number(input[i])
  if (stackNumber <= target) {
    while (stackNumber <= target) {
      stack.push(stackNumber);
      console.log('+');
      if (stackNumber === target) {
        stack.pop();
        console.log('-');
      }
      stackNumber += 1;
    }
  } else {
    if (stack[stack.length -1] !== target) {
      console.log('NO');
      break;
    } else {
      stack.pop();
      console.log('-');
    }
  }
}

'CS > Algorithm' 카테고리의 다른 글

백준 10828  (1) 2021.05.17
백준 9093  (0) 2021.05.17
백준 9012번  (0) 2021.05.17
해시 > 전화번호 목록  (0) 2021.04.04
힙 > 더 맵게  (0) 2021.04.04

댓글