Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 랜섬웨어
- 자바스크립트 기본 문법
- 파이썬
- 보안뉴스 한줄요약
- oracle
- 카카오프로젝트100
- GIT
- php
- 오라클
- 자바스크립트
- 보안뉴스요약
- 자바스크립트 node
- 카카오프로젝트
- 카카오프로젝트 100
- 보안뉴스한줄요약
- Oracle SQL
- 자바스크립트 객체
- 자바스크립트 jQuery
- javascript
- 보안뉴스
- numpy
- ES6
- python
- 깃허브
- 자바스크립트 prototype
- oracle db
- 자바스크립트 element api
- 보안뉴스 요약
- 다크웹
- 자바스크립트 API
Archives
- Today
- Total
FU11M00N
[LeetCode] Min Stack - Javascript 본문
Min Stack
[스택 push(), pop(), top(), getMin() 구현하기]
제약 조건
nums1.length == m + n
nums2.length == n
0 <= m, n <= 200
1 <= m + n <= 200
-109 <= nums1[i], nums2[j] <= 109
Example
문제 접근 방식
문제 자체가 어렵다기보단 문제를 이해하고 어떻게 답을 리턴하는지에 대해 알아내는 데 오래 걸렸다.
또한 프로토타입에 대한 내용을 까먹어서 다시 복습도 할 겸 코딩 애플의 프로토타입 문법 영상을 한번 보고 풀었다.
스택은 배열로 초기화 했다.
우선 MinStack 객체에선 스택이 될 배열 arr을 초기화했다.
push 프로토타입: arr.push(val)로 push 기능을 구현했다.
pop 프로토타입: arr.pop(val)로 pop 기능을 구현했다.
top 프로토타입: arr 길이에 1을 감소 한 값을 리턴하고,
getmin 프로토타입: arr 배열의 최솟값을 찾아 리턴했다.
전체코드
var MinStack = function() {
this.arr = []
};
/**
* @param {number} val
* @return {void}
*/
MinStack.prototype.push = function(val) {
this.arr.push(val)
};
/**
* @return {void}
*/
MinStack.prototype.pop = function() {
this.arr.pop()
};
/**
* @return {number}
*/
MinStack.prototype.top = function() {
return this.arr[this.arr.length-1]
};
/**
* @return {number}
*/
MinStack.prototype.getMin = function() {
min = Math.min.apply(null, this.arr);
return min
};
/**
* Your MinStack object will be instantiated and called as such:
* var obj = new MinStack()
* obj.push(val)
* obj.pop()
* var param_3 = obj.top()
* var param_4 = obj.getMin()
*/
다른 sovle 코드
var MinStack = function() {
this.stack=[];
};
/**
* @param {number} val
* @return {void}
*/
MinStack.prototype.push = function(val) {
this.stack.push({
value: val,
min : this.stack.length ? Math.min(val,this.getMin()) : val
})
};
/**
* @return {void}
*/
MinStack.prototype.pop = function() {
return this.stack.pop();
};
/**
* @return {number}
*/
MinStack.prototype.top = function() {
return this.stack[this.stack.length-1].value;
};
/**
* @return {number}
*/
MinStack.prototype.getMin = function() {
return this.stack[this.stack.length-1].min;
};
/**
* Your MinStack object will be instantiated and called as such:
* var obj = new MinStack()
* obj.push(val)
* obj.pop()
* var param_3 = obj.top()
* var param_4 = obj.getMin()
*/
getMin을 구현하는 방법이 나와 달랐다.
위의 코드는 push를 할 때 객체를 하나 생성해 value와 min 키를 생성하고 값을 넣는다.
min을 math.min을 사용해 최솟값을 넣고 getmin 프로토 타입에선 min 값을 가져오기에 최솟값을 구할 수 있었다.
'알고리즘' 카테고리의 다른 글
[LeetCode] Evaluate Reverse Polish Notation - Javascript (0) | 2023.08.31 |
---|---|
[LeetCode] Two Sum - Javascript (0) | 2023.08.31 |
[LeetCode] Search a 2D Matrix - Javascript (0) | 2023.08.29 |
[LeetCode] Search Insert Position - Javascript (0) | 2023.08.29 |
[LeetCode] Add Two Numbers - Javascript (2) | 2023.08.28 |
Comments