목록스터디 (46)
seunghyun Note
링크 : https://www.acmicpc.net/problem/11279 11279번: 최대 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 문제 풀이 힙을 복습해보자! 2024.02.23 - [코딩테스트/코테를 위한 알고리즘 & 자료구조 정리] - Binary Heaps with JS Binary Heaps with JS 단일 연결 리스트 이중 연결 리스트 스택 & 큐 (배열로 하는 방법은 숙지했음! linked list로 구현해 보기) 이진 검색 트리 트리 순회 (bfs,dfs) 이진 힙 해시 테이블..
깊이 우선 (DFS) preorder, inorder, postorder 재귀함수 사용해서 문제 해결하기 //Node를 생성한다. class Node { constructor(value) { this.value = value; this.left = null; this.right = null; } } //BST class BinarySearchTree { constructor() { this.root = null; } insert(value) { var newNode = new Node(value); if (this.root === null) { this.root = newNode; return this; } var current = this.root; while (true) { if (value === ..
string, number, boolean 세 가지 원시 타입은 js에서 typeof 연산자를 사용하였을 때 얻을 수 있는 것과 같은 이름이다. string : "abcd" number : 1234 -> int, float은 존재하지 않는다. boolean : true , false Arrays [1,2,3,4] 와 같은 배열 타입을 정할 때number[]` 구문을 사용 가능하다. string[] 은 문자열 배열이다. number[] = Array 의 형태로 작성 가능하다. 이러한 형태를 제네릭 T라고 한다. Any any는 특별한 타입이고 타입 검사 오류가 발생하는 것을 원하지 않을 때 사용 가능하다. let obj: any = { x: 0 }; // 아래 이어지는 코드들은 모두 오류 없이 정상적으로 ..
링크 : https://www.acmicpc.net/problem/1991 1991번: 트리 순회 첫째 줄에는 이진 트리의 노드의 개수 N(1 ≤ N ≤ 26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 알파 www.acmicpc.net 문제 풀이 이진 트리를 입력받아 전위 순회(preorder traversal), 중위 순회(inorder traversal), 후위 순회(postorder traversal)한 결과를 출력하는 프로그램을 작성하시오. 아직 트리에 대한 이해도가 많이 부족한 거 같다. 굳이 class를 만들어서 풀 필요가 없었다. 또한 순회에 대한 재귀가 아직 이해가 되지 않아 아래의 링크를 참고..
js 공부할 때 항상 제일 어려웠던(사실 모든것을 공부한 것은 아님;;;) 개념 async await.....!! 강의를 듣다가 아래의 코드를 다시 복습하게 됐다. export const home = async (req, res) => { const videos = await Video.find({}); return res.render("home", { pageTitle: "Home", videos }); }; 이 코드에서 사용되는 async와 await를 이해해보고 싶었다. async: 이 키워드는 함수를 비동기 함수로 만든다. 즉, 함수 안에서 비동기 작업을 수행할 수 있게 한다. await: 이 키워드는 비동기 작업이 끝날 때까지 기다리는 데 사용된다. 비동기 함수 내에서만 사용될 수 있으며, Pr..
링크 : https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net 문제 풀이 1. 입력 숫자(n) 만큼 배열 순회 for (let i = 0; i < n; i++) { sum += isGroup(arr[i]); } 2.isGroup 함수 function isGroup(str) { let compressed = ""; for (let i = 0; i < str.length; i++) { let currentChar = st..