강의로 돌아가기
임종수

케이스 6번만 틀리는데 이유를 알 수 있을까요?

케이스 6번만 틀리는데 이유를 알 수 있을까요?

작성중인 코드―solution.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
var Heap = (function() {
    function Heap() {
        this.arr = [];
    }
    function reheapUp(self, idx) {
        if (idx) {
            var parent = parseInt((idx - 1) / 2);
            if (self.arr[idx] < self.arr[parent]) {
                var temp = self.arr[idx];
                self.arr[idx] = self.arr[parent];
                self.arr[parent] = temp;
                reheapUp(self, parent);
            }
        }
    }

    Heap.prototype.insert = function(number) {
        var last = this.arr.length;
        this.arr[last] = number;
        reheapUp(this, last);
        return true;
    };

    return Heap;
})();

function solution(operations) {
    var answer = [];
    var heap = new Heap();

    for(var i=0; i<operations.length;i++){
        var k = operations[i].substring(0,1);
        var v = parseInt(operations[i].substring(1));
        if(k == "I"){
            heap.insert(v);
        }else if(v == 1){
            heap.arr.pop();
        }else if(v == -1){
            heap.arr.shift();
        }
    }
    if(heap.arr.length == 0){
       answer = [0,0];
    }else{
       answer = [heap.arr[heap.arr.length-1],heap.arr[0]];
    }

    return answer;
}
0 개의 답변
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.