주어진 배열을 주고 이전 까지 있었던 값들 까지 계산해서, 3초 이내에 해당하는 값들을 count하는 문제이다.
ex) input: [[], [1], [100], [3001], [3002]] , output: [null, 1, 2, 3, 3]
이번 문제는 좀 특이하게 생성자를 만드는 것을 요구한다.
class RecentCounter {
queue = [];
ping(t) {
this.queue.push(t);
//맨 처음 값이 입력받은 값 t-3000이내일 경우는 제외시킨다.
while (this.queue[0] < t - 3000) {
this.queue.shift();
}
return this.queue.length;
}
}
문제가 금방 풀렸으므로 다른 문제를 추가로 풀어본다.
주어진 함수들의 프로세스를 구현하는 문제이다.
ex)
Input : ["MyStack", "push", "push", "top", "pop", "empty"], [[], [1], [2], [], [], []]
output : [null, null, null, 2, 2, false]
output에 맞게 구현했더니 해결됐다..
class MyStack{
queue = []
push(x){
this.queue.push(x)
return null
}
pop(){
return this.queue.pop()
}
top(){
return this.queue[this.queue.length-1]
}
empty(){
if(this.queue.length == 0) return true
return false
}
}