Number of Recent Calls & Implement Stack using Queues

Guk's.velog·2024년 6월 23일
0

코딩테스트

목록 보기
18/22

문제 : Number of Recent Calls

주어진 배열을 주고 이전 까지 있었던 값들 까지 계산해서, 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;
    }
}

문제가 금방 풀렸으므로 다른 문제를 추가로 풀어본다.

문제 : Implement Stack using Queues

주어진 함수들의 프로세스를 구현하는 문제이다.

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
}

}

0개의 댓글