Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 자바스크립트 연결리스트
- NPM
- 자바스크립트 문제 풀이
- next13
- 알고리즘문제풀이
- 프로그래머스
- 제로베이스
- Baekjoon
- JS
- leetcode문제풀이
- 자바스크립트 알고리즘
- Next.js13
- 자바스크립트 문제풀이
- leetcode
- stack문제
- 자바스크립트 알고리즘 문제
- 타입스크립트
- lodash
- til
- CSS
- 자바스크립트 문제
- 리액트
- react
- HTML
- 리액트쿼리
- 프론트엔드
- Next
- 자바스크립트
- 자바스크립트코딩테스트
- JavaScript
Archives
- Today
- Total
코드노트
자바스크립트 배열 stack 코드 문제 풀이 본문
문제 설명
1, 2, 3을 가진 배열에서
- 1, 2, 3
- 3, 2, 1
- 3, 1, 2
이 세가지를 stack을 통해서 입력 순서대로 숫자를 없앨 수 있는지를 true, false로 반환해야한다.
function answer(train) {
let stack = [];
let num = 0;
for (let i = 0; i < train.length; i++) {
while (stack.length === 0 || stack[stack.length - 1] < train[i]) {
// while (stack의 길이가 0이거나 현재 stack의 가장 끝에 있는 수가 train[i]보다 작을때)
stack.push(++num); // 1, 2, 3 을 추가
}
if (stack[stack.length - 1] === train[i]) {
// if(현재 stack의 가장 끝에 있는 수가 train[i]와 같으면
stack.pop(); // 제거
} else {
return false; // 그게 아니라면 fasle
}
}
return true;
}
- 처음에는 배열을 순서대로 넣고 넣은 순서대로 뺄생각을 했었다.
- 1, 2, 3이라는 배열이 정해져있었기 때문에 1, 2, 3배열을 만들어놓고 비교하면서 제거해주면 되는 문제 였다.
- while이나 if 조건을 만들때 더 많은 생각을 해야할 것 같다.
- stack은 간단한 문제 같으면서도 막상 풀게 되면 헤메게 되는거 같다.
if (!Array.prototype.peek) {
Array.prototype.peek = function () {
return this[this.length - 1];
};
}
if (!Array.prototype.isEmpty) {
Array.prototype.isEmpty = function () {
return this.length === 0;
};
}
function answer(train) {
let stack = [];
let num = 0;
for (let i = 0; i < train.length; i++) {
while (stack.isEmpty() || stack.peek() < train[i]) {
stack.push(++num);
}
if (stack.peek() === train[i]) {
stack.pop();
} else {
return false;
}
}
return true;
}
- 메서드를 통해서 풀게 되면 더 간결한 코드를 만들 수 있었다.
'Code note > 자바스크립트 알고리즘 문제풀이' 카테고리의 다른 글
LeetCode 26. Remove Duplicates from Sorted Array 배열 문제 풀이 (0) | 2022.09.18 |
---|---|
자바스크립트 stack 괄호 짝 찾기 문제 풀이 (2) | 2022.09.17 |
Leetcode Merge Two Sorted Lists 두 개의 정렬된 목록 병합 문제풀이, (0) | 2022.09.14 |
원형 연결리스트 알고리즘 문제 풀이 (0) | 2022.09.14 |
연결리스트 역순 출력, 반대로 연결 이해하기, 자바스크립 (0) | 2022.09.13 |