반응형 분류 전체보기276 [코딩 테스트] 15일차: 그리디 알고리즘 그리디 알고리즘 (Greedy Algorithm)그리디 알고리즘은 매 순간 가장 최적이라고 생각되는 해를 선택하여 문제를 해결하는 방법입니다. 이 방법은 부분적인 최적 해가 전체적인 최적 해가 될 수 있는 문제에 적합합니다.그리디 알고리즘의 주요 개념현재 시점에서 가장 좋은 선택: 각 단계에서 가장 좋은 선택을 하여 문제를 해결부분 최적 해: 각 부분 문제에서의 최적 해가 전체 문제에서도 최적 해가 되는 경우최소 신장 트리 (MST)최소 신장 트리는 그래프의 모든 정점을 포함하면서, 사이클이 없고, 간선의 가중치 합이 최소인 트리입니다. 대표적인 알고리즘으로는 크루스칼 알고리즘(Kruskal's Algorithm)과 프림 알고리즘(Prim's Algorithm)이 있습니다.크루스칼 알고리즘 (Kruska.. 2024. 9. 15. [JavaScript 문법] 44일차: Vue.js 기초 Vue.js란?Vue.js는 사용자 인터페이스를 구축하기 위한 진보적인 JavaScript 프레임워크입니다. Vue.js는 간결한 API와 컴포넌트 기반 아키텍처를 제공하여 개발자가 효율적으로 애플리케이션을 작성할 수 있도록 도와줍니다. Vue.js의 주요 개념으로는 Vue 인스턴스, 템플릿 문법, 데이터 바인딩 등이 있습니다.Vue 인스턴스Vue 인스턴스는 Vue 애플리케이션의 핵심 객체로, 데이터, 템플릿, 메서드 등을 정의합니다. Vue 인스턴스를 생성하려면 new Vue를 사용합니다.예제: Vue 인스턴스 생성 {{ message }}위 예제에서는 new Vue를 사용하여 Vue 인스턴스를 생성하고, #app 요소에 연결합니다. data 객체의 message 속성은 템플릿에서 바인딩되어 렌더링됩.. 2024. 9. 14. [코딩 테스트] 14일차: 분할 정복 분할 정복 (Divide and Conquer)분할 정복은 문제를 더 작은 하위 문제로 나누어 해결하고, 그 결과를 합쳐서 원래 문제를 해결하는 알고리즘 기법입니다. 분할 정복의 핵심은 문제를 나누고(Divide), 정복하며(Conquer), 합치는(Combine) 단계로 이루어집니다.분할 정복의 주요 개념분할(Divide): 문제를 더 작은 하위 문제로 나눕니다.정복(Conquer): 하위 문제를 재귀적으로 해결합니다.합치기(Combine): 하위 문제의 결과를 합쳐 원래 문제의 해를 구합니다.합병 정렬 (Merge Sort)합병 정렬은 분할 정복 알고리즘의 대표적인 예제로, 배열을 반으로 나누어 각각을 정렬한 후 병합하여 정렬된 배열을 만듭니다. 시간 복잡도는 O(n log n)입니다. 예제: 합병 .. 2024. 9. 14. [JavaScript 문법] 43일차: React 기초 React란?React는 Facebook에서 개발한 사용자 인터페이스 구축을 위한 JavaScript 라이브러리입니다. React는 컴포넌트 기반 아키텍처를 사용하여 UI를 구성하고, 상태 관리 및 효율적인 렌더링을 지원합니다. React의 주요 개념으로는 컴포넌트, props, state 등이 있습니다.컴포넌트컴포넌트는 React 애플리케이션의 기본 단위로, 독립적이고 재사용 가능한 UI 요소입니다. 컴포넌트는 함수형 컴포넌트와 클래스형 컴포넌트로 나뉩니다.함수형 컴포넌트함수형 컴포넌트는 JavaScript 함수를 사용하여 컴포넌트를 정의합니다. 함수형 컴포넌트는 props를 인수로 받아 JSX를 반환합니다.예제: 함수형 컴포넌트function Welcome(props) { return Hello, .. 2024. 9. 13. [코딩 테스트] 13일차: 동적 프로그래밍 동적 프로그래밍 (Dynamic Programming)동적 프로그래밍은 복잡한 문제를 더 작은 부분 문제로 나누어 해결하는 방법입니다. 부분 문제의 해결 결과를 저장하여 동일한 부분 문제를 다시 계산하지 않도록 합니다. 동적 프로그래밍은 주로 최적화 문제에 사용되며, 메모이제이션(Memoization)과 타뷸레이션(Tabulatioon) 두 가지 방법으로 구현할 수 있습니다.동적 프로그래밍의 주요 개념부분 문제(Subproblem): 원래 문제를 구성하는 더 작은 문제최적 부분 구조(Optimal Substructure): 부분 문제의 최적 해를 이용하여 원래 문제의 최적 해를 구할 수 있는 구조중복되는 부분 문제(Overlapping Subproblems): 동일한 부분 문제가 여러 번 반복되는 문제 .. 2024. 9. 13. [JavaScript 문법] 42일차: 브라우저 API 브라우저 API란?브라우저 API는 웹 브라우저에서 제공하는 다양한 기능에 접근할 수 있는 JavaScript 인터페이스를 의미합니다. 이를 통해 웹 애플리케이션에서 브라우저의 내장 기능을 활용할 수 있습니다. 주요 브라우저 API로는 스토리지 API, 위치 정보 API, 히스토리 API 등이 있습니다.브라우저 스토리지브라우저 스토리지는 웹 애플리케이션에서 클라이언트 측에 데이터를 저장할 수 있는 기능을 제공합니다. 대표적인 스토리지 API로는 localStorage와 sessionStorage가 있습니다.localStoragelocalStorage는 브라우저가 닫혀도 데이터가 유지되는 영구 저장소입니다.예제: localStorage 사용// 데이터 저장localStorage.setItem('userna.. 2024. 9. 12. [코딩 테스트] 12일차: 그래프 알고리즘 그래프 알고리즘그래프 알고리즘은 노드(정점)와 노드를 연결하는 에지(간선)로 구성된 자료구조인 그래프를 탐색하거나 분석하는 알고리즘입니다. 이번 글에서는 깊이 우선 탐색(DFS), 너비 우선 탐색(BFS), 그리고 최단 경로 알고리즘(Dijkstra, Floyd-Warshall)에 대해 알아보겠습니다.깊이 우선 탐색(DFS)깊이 우선 탐색(DFS)은 그래프의 모든 정점을 깊게 탐색하는 알고리즘입니다. 스택(또는 재귀)을 사용하여 구현할 수 있습니다.예제: DFS 구현JavaScriptclass Graph { constructor() { this.adjList = new Map(); } addVertex(v) { if (!this.adjList.has(v)) { this.adjLi.. 2024. 9. 12. [JavaScript 문법] 41일차: 폼 이벤트 처리 폼 이벤트란?폼 이벤트는 사용자가 폼 요소와 상호작용할 때 발생하는 이벤트를 의미합니다. 주요 폼 이벤트로는 submit, input, change, focus, blur 등이 있습니다. 폼 이벤트를 처리하면 사용자가 입력한 데이터를 검증하고, 폼 제출을 제어할 수 있습니다.폼 제출 이벤트submit 이벤트는 사용자가 폼을 제출할 때 발생합니다. 폼 제출 이벤트를 처리하여 기본 제출 동작을 막고, 사용자 입력을 검증하거나 서버로 데이터를 전송할 수 있습니다.예제: 폼 제출 이벤트 처리 Submit위 예제에서는 폼이 제출될 때 기본 제출 동작을 막고, 사용자 입력 값을 알림으로 표시합니다.입력 필드 이벤트input 이벤트는 사용자가 입력 필드의 값을 변경할 때 발생합니다. 이 이벤트를 사용하여 실시간.. 2024. 9. 11. [코딩 테스트] 11일차: 재귀와 백트래킹 재귀 (Recursion)재귀는 함수가 자기 자신을 호출하는 프로그래밍 기법입니다. 재귀 함수는 하나 이상의 종료 조건(Base Case)과 자기 자신을 호출하는 재귀 단계(Recursive Case)를 포함합니다.재귀 함수의 주요 개념기저 조건(Base Case): 재귀 호출을 멈추는 조건재귀 단계(Recursive Case): 함수를 반복적으로 호출하는 단계예제: 재귀를 이용한 팩토리얼 계산JavaScriptfunction factorial(n) { if (n === 0) { return 1; // 기저 조건 } return n * factorial(n - 1); // 재귀 단계}console.log(factorial(5)); // 120Pythondef factorial(n): if.. 2024. 9. 11. [JavaScript 문법] 40일차: 이벤트 처리 심화 이벤트 전파이벤트 전파(Event Propagation)는 이벤트가 발생한 요소에서 상위 요소로 전파되는 과정을 의미합니다. JavaScript에서는 이벤트 전파를 관리하기 위해 캡처링(Capturing) 단계와 버블링(Bubbling) 단계를 사용할 수 있습니다.캡처링과 버블링캡처링(Capturing): 이벤트가 상위 요소에서 하위 요소로 전파됩니다.버블링(Bubbling): 이벤트가 하위 요소에서 상위 요소로 전파됩니다.예제: 이벤트 캡처링과 버블링 Click me 위 예제에서 버튼을 클릭하면 다음과 같은 순서로 로그가 출력됩니다:Grandparent capturedParent capturedChild clickedParent bubbledGrandparent bubbled이벤트 위임이벤트.. 2024. 9. 10. 이전 1 2 3 4 5 6 ··· 28 다음 반응형