카카오 코테가 5일 남았는데, ChatGPT에게 이에 대한 계획표를 짜달라고 했다.

최종 점검이랑 휴식시간까지 챙겨주는 엄청난.... 근데 알고리즘을 이틀만에 정복하는 거 맞을까?
알고리즘 강의도 듣고 문제도 조금씩 풀어보았지만, 체득해서 코테를 푼다는 느낌은 없었어서 취업 대비 제대로 공부해 보려고 한다.
우선, 스택과 큐의 JS 코드를 알려달라 했다.
1. 스택
class Stack {
constructor() {
this.items = [];
}
// 요소 추가
push(element) {
this.items.push(element);
}
// 가장 최근에 추가된 요소 제거 및 반환
pop() {
if (this.items.length === 0) return "Stack is empty";
return this.items.pop();
}
// 가장 최근에 추가된 요소 확인
peek() {
return this.items[this.items.length - 1];
}
// 스택이 비어있는지 확인
isEmpty() {
return this.items.length === 0;
}
// 스택의 크기 반환
size() {
return this.items.length;
}
// 스택 초기화
clear() {
this.items = [];
}
}
js에서 [ ]로 빈 array를 지정하고 push와 pop을 통해 스택의 FILO(First In Last Out)의 구조를 구현하는 게 핵심인 듯하다.
일반적인 구글링으로 찾을 수 있는 스택의 코드보다 더 자세하게 알려준 것이 좋았다.
2. 큐
class Queue {
constructor() {
this.items = [];
}
// 요소 추가
enqueue(element) {
this.items.push(element);
}
// 가장 먼저 추가된 요소 제거 및 반환
dequeue() {
if (this.isEmpty()) return "Queue is empty";
return this.items.shift();
}
// 가장 먼저 추가된 요소 확인
front() {
if (this.isEmpty()) return "Queue is empty";
return this.items[0];
}
// 큐가 비어있는지 확인
isEmpty() {
return this.items.length === 0;
}
// 큐의 크기 반환
size() {
return this.items.length;
}
}
큐도 마찬가지로 스택과 비슷한 형태의 구조를 알려주었다. 다만 push 와 shift를 이용해 FIFO(First In First Out) 의 구조를 만들어주었다.
'CS > 알고리즘&자료구조' 카테고리의 다른 글
[코딩온] Math.min([array]) = NaN 해결 (JS) (0) | 2023.12.12 |
---|---|
[코딩온] ChatGPT와 함께하는 JS 알고리즘 공부(1) - list(set) (0) | 2023.12.11 |