반응형
✅ 1. 화살표 함수란?Javascript의 화살표 함수(Arrow Function)은 ES6(ECMAScript 2015)에 도입된 간결한 함수 표현식 문법으로 function 키워드 대신 => (화살표)를 사용하여 함수를 작성합니다. 주로 익명 함수, 콜백 함수 작성 시 더 짧고 간결하게 쓰기 위해 사용합니다.특징function 키워드 없이 작성 가능 -> 코드의 간결함함수 내부 this가 상위 스코프의 this를 그대로 사용익명 함수가 주로 쓰임 -> 이벤트 핸들러, 콜백에 적합arguments 객체가 없음 (필요시 나머지 매개변수 사용)✅ 2. 기본 문법화살표 함수는 기본적으로 function 대신 => 기호를 사용해 함수를 정의합니다. 함수 몸체가 한 줄이라면 중괄호( { } )와 return ..
✅ let 과 const 기본 개념1️⃣ let 재할당 가능한 변수를 선언할 때 사용블록 스코프(중괄호 { } 안에서만 유효)let이전에 사용한 var과 달리 호이스팅 시 undefined 초기화 없이 TDZ(Temporal Dead Zone)적용let kg = 80;kg = 72; // ✅ kg는 재할당 가능console.log(`he is ${kg}kg`); // ✅ he is 72kg2️⃣ const 재할당 불가능한 변수를 선언할 때 사용블록 스코프 동일 적용그러나 **값이 불변(immutable)""이라는 뜻은 ❌ -> 객체나 배열 내부 값은 변경 가능const nickname = "paul smith";// nickname = "Harry Potter"; // ❌ 재할당 불가const user ..
1. 그래프 데이터 구조그래프는 일반적으로 인접 리스트 또는 인접 행렬로 표현되며, 인접 리스트를 사용한 방식은 다음과 같습니다.class GraphData { constructor() { this.adjacencyList = {}; } addVertex(vertex) { if (!this.adjacencyList[vertex]) { this.adjacencyList[vertex] = []; } } addEdge(vertex1, vertex2) { this.adjacencyList[vertex1].push(vertex2); this.adjacencyList[vertex2].push(vertex1); }}2. 너비 우선 탐색 (BFS)BFS에서 각 노드를 방문..
1. 팩토리얼 (Factorial)팩토리얼은 자연수 n에 대해 n! = n x (n-1) x (n-2) X ... X 1로 정의됩니다. 예를 들어, 5! = 5 X 4 X 3 X 2 X 1 = 120입니다.function factorial(n) { // 기본 사례: 0! = 1, 1! = 1 if (n === 0 || n === 1) { return 1; } // 재귀 호출 return n * factorial(n - 1);}// 예제 사용console.log(factorial(5)); // 출력: 120 재귀 호출이 깊어지면 스택 오버플로우가 발생할 수 있고, 큰 숫자의 팩토리얼을 계산할 때는 반복문을 사용하는 것이 더 안전할 수 있습니다.2. 피보나치 수열 (Finbonacci Sequ..
1. 선형 탐색(Linear Search)선형 탐색은 배열의 각 요소를 순차적으로 확인해 원하는 값을 찾는 알고리즘으로, 배열의 길이에 비례하여 시간이 소요되므로, 최악의 경우 O(n)의 시간 복잡도를 가집니다.// 선형 탐색 알고리즘function linearSearch(arr, target) { for (let i = 0; i 2. 이진 탐색(Binary Search)이진 탐색은 정렬된 배열에서 중간 요소와 비교하여 원하는 값을 찾는 알고리즘으로, 배열을 반으로 나누어 탐색 범위를 줄여가므로, O(log n)의 시간 복잡도를 가집니다. 이진 탐색을 사용하기 위해 배열이 반드시 정렬되어야 합니다.function binarySearch(arr, target) { let left = 0; let ri..
1. 선택 정렬선택 정렬은 배열에서 최소값을 찾아 맨 앞의 원소와 교환하는 방식입니다.function selectSort(arr) { const n = arr.length; for (let i = 0; i 2. 삽입 정렬삽입 정렬은 정렬된 부분과 정렬되지 않은 부분을 나누어, 정렬되지 않은 부분의 원소를 정렬된 부분에 삽입하는 방식입니다.function insertionSort(arr) { const n = arr.length; for (let i = 1; i = 0 && arr[j] > key) { arr[j + 1] = arr[j]; j--; } arr[j + 1] = key; } return arr;}const array3 = [12, 11, 13, 5, 6]..