자바스크립트
-
[ 비선형 자료구조 ] 트리 순회Computer Science/자료 구조 2023. 1. 19. 17:36
1. pre-order traversal (전위 순회) [root - 왼쪽 자식 노드 - 오른쪽 자식 노드] 순으로 순회하는 방식이다. 이 방식에 따르면 A-B-D-E-C-F-G 순으로 트리를 순회하며, 자바스크립트로 구현한 코드는 아래와 같다. fucntion preOrder(root) { if (!root) return; console.log(root.data); preOrder(root.left); preOrder(root.right); } 2. in-order traversal (중위 순회) [왼쪽 자식 노드 - root - 오른쪽 자식 노드] 순으로 순회하는 방식이다. 이 방식에 따르면 D-B-E-A-F-C-G 순으로 트리를 순회하며, 자바스크립트로 구현한 코드는 아래와 같다. fucntion ..
-
[ 선형 자료구조 ] 연결 리스트 - Circular Linked List(원형 연결 리스트)Computer Science/자료 구조 2023. 1. 4. 17:27
연결 리스트는 각각의 요소들이 "노드"에 저장되는 선형 자료 구조이다. 각 노드들은 다음 노드에 대한 참조값을 가지며 이를 "링크"라 한다. 이러한 노드들로 이루어진 연결 리스트는 노드의 link filed를 사용함으로써 데이터의 추가 및 삭제를 모든 리스트 인덱스에 대한 방문 및 재구성 없이 실행 가능하다. 연결 리스트는 스택, 큐, 그래프 등을 구현하는데 자주 사용되며, 그 종류로는 Singly linked list, Doubly linked list 등이 있다. 1. 기본 배경 지식 1) Node 연결 리스트를 구성하는 노드는 Data filed, Linke filed 두 가지 필드로 이루어진 묶음이다. Data filed는 node는 integer, character 등 노드가 보유할 실제 데이터..
-
[ 선형 자료구조 ] 연결 리스트 - Doubly Linked List(이중 연결 리스트)Computer Science/자료 구조 2023. 1. 3. 16:47
연결 리스트는 각각의 요소들이 "노드"에 저장되는 선형 자료 구조이다. 각 노드들은 다음 노드에 대한 참조값을 가지며 이를 "링크"라 한다. 이러한 노드들로 이루어진 연결 리스트는 노드의 link filed를 사용함으로써 데이터의 추가 및 삭제를 모든 리스트 인덱스에 대한 방문 및 재구성 없이 실행 가능하다. 연결 리스트는 스택, 큐, 그래프 등을 구현하는데 자주 사용되며, 그 종류로는 Singly linked list, Doubly linked list 등이 있다. 1. 기본 배경 지식 1) Node 연결 리스트를 구성하는 노드는 Data filed, Linke filed 두 가지 필드로 이루어진 묶음이다. Data filed는 node는 integer, character 등 노드가 보유할 실제 데이터..
-
[ 프로그래머스 / JS ] Lv.1 소수 찾기Algorithm/프로그래머스 2023. 1. 1. 19:32
1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다. (1은 소수가 아닙니다.) 제한사항 n은 2이상 1000000이하의 자연수입니다. 풀이 function solution(n) { let arr = new Array(n - 1).fill(2).map((ele, idx) => ele += idx); for (let i = 0; i < arr.length; i++) { if (arr[i] === 0) continue; for (let j = i + arr[i]; j ele).length } 실행에 걸린 최대 시간 : 102.07ms 사고과정 에라토스테네스의 체를 쓰자! 평가 개선점 알게된점 에라소트테네..
-
소수의 개수 파악 - 에라토스테네스의 체Algorithm/이론 2023. 1. 1. 19:27
에라토스테네스의 체는 특정 수가 주어졌을 때 2부터 특정 수까지의 범위 중 소수의 개수를 파악하는 방법이다. 알고리즘의 순서는 아래와 같다. 2 부터 구하고자 하는 구간의 모든 수를 나열한다. 첫번째 수인 2 자기 자신을 제외하고 자신의 배수를 모두 지운다. 남은 수들 중 다음수에 대하여 단계 2를 반복한다. 이를 자바스크립트 코드로 구현하면 아래와 같다. function solution(n) { // 1. 2부터 n까지의 모든수를 배열에 저장 let arr = new Array(n - 1).fill(2).map((ele, idx) => ele += idx); for (let i = 0; i < arr.length; i++) { // 2. 모든 수에 대해 순회 // 3. 인덱스의 수가 0일 경우(지워진 ..
-
[ JS ] Date 객체와 메서드Javascript/이론 2023. 1. 1. 19:04
1. 객체 생성 1) 인수 없이 호출 현재 날짜 및 시간이 저장된 객체 반환 let date = new Date(); // Sun Jan 01 2023 17:54:39 GMT+0900 (한국 표준시) // 현재 날짜 및 시간이 저장된 객체 반환 2) 숫자 인수를 전달하여 호출 UTC 기준 1970년 1월 1일 0시 0분 0초에서 date 객체 생성시 전달한 arg 밀리초 후의 시점이 저장된 객체 반환 let date = new Date(24 * 3600 * 1000); console.log(date) // Fri Jan 02 1970 09:00:00 GMT+0900 (한국 표준시) // UTC 기준 1970년 1월 1일 0시 0분 0초에서 date 객체 생성시 전달한 arg 밀리초 후의 시점이 저장된 객..
-
[JS / 메서드] 유니코드 - charCodeAt(), fromCharCode()Javascript/메서드 2022. 12. 30. 15:42
str.charCodeAt(idx) str[idx]의 unicode point를 반환 'ABC'.charCodeAt(0); // returns 65 (the code point for 'A') 'ABC'.charCodeAt(1); // returns 66 (the code point for 'B') 'ABC'.charCodeAt(2); // returns 67 (the code point for 'C') String.fromCharCode(unicode point) unicode point에 해당하는 char을 반환한다. String.fromCharCode(65); // returns 'A' String.fromCharCode(66); // returns 'B' String.fromCharCode(67)..