
여기서 쌓는다는 것에 중심으로 생각하면 --> 순서대로 갈때 이전의 가장 큰수보다 더 큰수가 올때 쌓을수 있다는것을 알수 있다. 따라서 max 값을 업데이트하면서 쌓고
모은 배열값을 pop 할수 있나 없나를 확인하면된다고 생각하였다,
if(order[i]>max_order){
in__(max_order,order[i]);
max_order=order[i];
count+=1;
}
이함수를 이용해서 업데이트를 하는데
const in__= function(hey,new_hey){
for(var i=hey; i<new_hey; i++){
push__.push(i);
}
}
이런식으로 가면 이전의 max 가 또 쌓이게 되는 문제점이 발생한다. 따라서
hey+1 으로 쌓아야 된다..!
function solution(order) {
var answer = 0;
//첫번째로 넣을거
var push__=[];
var max_order=0;
var count=0;
const in__= function(hey,new_hey){
for(var i=hey+1; i<new_hey; i++){
push__.push(i);
}
}
for(var i=0; i<order.length; i++){
if(order[i]>max_order){
in__(max_order,order[i]);
max_order=order[i];
count+=1;
}
else{
//작은경우
if(push__[push__.length-1]!=order[i]){
return count;
}
else{
// 같은경우
push__.pop();
count+=1;
}
}
}
return (count);
}
solution([3, 2, 1, 4, 5])
