본문 바로가기

codes56

[Stack] 구현 class Stack { constructor() { this.storage = {}; this.top = -1; // 스택의 가장 상단을 가리키는 포인터 변수를 초기화 합니다. } size() { return this.top +1; } // 스택에 데이터를 추가 할 수 있어야 합니다. push(element) { this.top += 1; this.storage[this.top] = element; } // 가장 나중에 추가된 데이터가 가장 먼저 추출되어야 합니다. pop() { // 빈 스택에 pop 연산을 적용해도 에러가 발생하지 않아야 합니다 if (this.size() 0으로 바뀌어야 함 ; stack.push(1) - 뒤이어 2가 들어오면 this.top += 1 ---> 0+1 ---> 1가.. 2023. 2. 12.
[Queue] 구현 class Queue { constructor() { this.storage = {}; this.front = 0; // 앞 (나가는 곳) this.rear = 0; // 뒤 (들어오는 곳) } // 큐에 추가된 데이터의 크기를 리턴 // front = 0, rear = 1, 지금 큐에 들어가 있는 데이터의 갯수는 몇 개인가요? 1 size() { return this.rear - this.front; // 1 - 0 = 1 } // 큐에 데이터를 추가 할 수 있어야 합니다. enqueue(element) { // front = 0, rear = 0 this.storage[this.rear] = element; this.rear += 1; } // 가장 먼저 추가된 데이터가 가장 먼저 추출되어야 합니다... 2023. 1. 15.
[Stack] 구현 class Stack { constructor() { this.storage = {}; this.top = -1; // 스택의 가장 상단을 가리키는 포인터 변수를 초기화 합니다. } // 스택에 추가된 데이터의 크기를 리턴 size() { // 0부터 storage의 카운팅이 시작됨! return this.top + 1; // Stack이 비어 있으면 0개로 보여야함 } // 스택에 데이터를 추가 할 수 있어야 합니다. push(element) { this.top += 1; this.storage[this.top] = element; } // 가장 나중에 추가된 데이터가 가장 먼저 추출되어야 합니다. pop() { // 빈 스택에 pop 연산을 적용해도 에러가 발생하지 않아야 합니다 // Stack이 비.. 2023. 1. 15.
[Stack] 브라우저 뒤로가기 앞으로가기 function browserStack(actions, start) { // actions : 인터넷 브라우저에서 행동한 순서가 들어았는 배열 // const actions = ["B", "C", -1, "D", "A", -1, 1, -1, -1]; // start : 시작 페이지 // const start = "A"; // TO DO : actions, start가 주어질 때 마지막에 접속해 있는 페이지와 방문했던 페이지들이 담긴 스택을 반환하는 솔루션 만들기 // 뒤로가기 -> -1, 앞으로가기 -> 1 // 반환되는 출력값 배열의 첫 번째 요소 -> prev 스택 배열, 세번째 요소 -> next 스택 배열 // output = browserStack(actions, start) --> [["A"].. 2023. 1. 12.
24_isSubsetOf Array.prototype.every( ) 메서드 : 배열 안에 모든 요소가 주어진 판별 함수를 통과하는지 테스트. Boolean 값을 반환 함 Array.prototype.includes( ) 메서드 : 배열이 특정 요소를 포함하고 있는지 판별 Array.from( ) 메서드 : 유사 배열 객체(array-like-object)나 반복 가능한 객체(iterable object)를 얕게 복사해 새로운 Array 객체를 만듬 1st_naive solution : 베이스에서 샘플이랑 일치하는 요소가 나오면 그 요소들만 모은 배열을 만들어서 샘플이랑 비교 후 결과 리턴 // naive solution // : 베이스에서 샘플이랑 일치하는에 배열만들어서 똑같으면 true return 하기 const isSub.. 2022. 12. 26.
23_bubbleSort 버블 정렬(bubble sort) 알고리즘 1. 첫 번째 요소가 두 번째 요소보다 크면 → 두 요소의 위치를 바꿈 (swap) 2. 두 번째 요소가 세 번째 요소보다 크면 → 두 요소의 위치를 바꿈 (swap) 3. 1,2를 마지막까지 반복 (마지막에서 두 번째 요소와 마지막 요소를 비교) 4. 1~3의 과정을 한 번 거치게 되면, 가장 큰 요소가 마지막 배열로 밀려남 5. 1~3의 과정을 첫 요소부터 다시 반복 6. 5를 통해 두 번째로 큰 요소가 배열의 마지막 바로 두번 째로 밀려남 7. 1~3의 과정을 총 n번(배열의 크기) 반복 : 이 모습이 마치 거품이 밀려 올라가는 것과 같은 모습과 같아서 bubble sort 라고 함 XOR(exclusive OR) 연산 - 두 개의 입력 A와 B를 받아 입.. 2022. 12. 22.