seunghyun Note
[백준] 12789번 : 도키도키 간식드리미(스택 공부 부수기) with JS 본문
728x90
반응형
링크 : https://www.acmicpc.net/problem/12789
문제 풀이
이 문제는 반례들을 생각하기보다는 주어진 예시만으로 접근을 해야 편하다.
(본인은 다른 반례들도 생각해 보니 시간이 너무 오래 걸렸다.)
init 값을 1로 설정해서 출발한다.
나는 일단 모든 array 값을 stack에 순차적으로 push부터 했다.
push 후에 스택 내에 순회를 하면서 init가 같다면 pop을 하고 init값을 +1 해서 비교해 주는 과정이었다.
마지막으로 stack 이 empty이면 "Nice" 아니면 "Sad"를 출력하게 한다.
const fs = require("fs");
//const [n,INPUT] = fs.readFileSync("/dev/stdin").toString().trim().split("\n");
const [n, INPUT] = fs.readFileSync("예제.txt").toString().trim().split("\n");
const input = INPUT.split(" ").map(Number);
//initialize
let init = 1;
let stack = [];
//function
for (let value of input) {
stack.push(value);
while (stack.length > 0 && stack[stack.length - 1] === init) {
stack.pop();
init++;
}
}
//result
if (stack.length > 0) console.log("Sad");
else console.log("Nice");
무엇이 어려웠는가?
문제를 너무 고차원적으로 생각하지 않기.
일단 주어진 예시만으로 문제를 해결해 보자.
스택에 대한 이해도가 점점 올라가고 있는데 그림을 그리거나 순서도를 상상하면서 문제를 해결하기!
(문제 이름이 귀여움.. 인하대 승환이 화이팅!)
728x90
반응형
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[백준] 18258번 : 큐 2 with JS (0) | 2024.01.23 |
---|---|
[프로그래머스] 배열의 원소 삭제하기 with JS (0) | 2024.01.23 |
[백준] 4949번 : 균형잡힌 세상(스택 공부 부수기) with JS (0) | 2024.01.18 |
[백준] 9012번 : 괄호 (스택 공부 부수기) with JS (0) | 2024.01.18 |
[백준] 10773 : 제로 (스택 공부 부수기) with JS (1) | 2024.01.18 |