버블 정렬 (Bubble Sort) 정렬 알고리즘 소개
·
Algorithm/Theory
정렬이란?정렬이란 컬렉션(ex: 배열)의 항목을 재배열하는 과정을 의미합니다. 왜 배워야 하나?정렬은 프로그래밍에서 매우 흔하게 사용됩니다.데이터를 정렬할 수 있는 방법은 많고, 각각 장단점이 있습니다.특정 상황에서 더 빠른 알고리즘이 있습니다. 목표버블 정렬선택 정렬삽입 정렬 기본 내장 JS 정렬array 내장 sortMDN을 살펴보면 문자열은 A, B, C, D 순으로 나오지만 숫자는 오름차순이 아닌 것을 알 수 있습니다. 그 이유는 기본 정렬 순서가 문자열 유니코드에 따르기 때문입니다.하지만 정렬 방식, 정렬의 기준이 되는 속성, 비교 대상을 실제로 지정할 수 있다면 다른 결과를 낼 수 있습니다. 버블 정렬 개요버블 정렬의 개념은 예를 들어 배열을 오름차순으로 정렬한다면, 더 큰 숫자가 한 번에 하..
재귀 (Recursion)
·
Algorithm/Theory
재귀의 기본 개념재귀는 문제를 더 작은 부분으로 나누어, 종료점에 도달할 때까지 반복적으로 수행하는 방법입니다. 목표재귀가 무엇인지, 어떻게 유용하게 사용할 수 있는지 이해하기재귀 함수 작성의 두 가지 핵심 요소호출 스택이 재귀와 어떤 관련이 있는지 이해하기헬퍼 메소드 재귀와 순수 재귀의 차이점과 비교 재귀 함수를 사용하는 이유재귀는 자기 자신을 호출하는 절차로, 많은 상황에서 유용하게 사용됩니다. 복잡한 데이터 구조나 알고리즘을 다룰 때 재귀가 큰 도움이 될 수 있습니다.예를 들어:JSON.parse / JSON.stringifydocument.getElementById와 같은 DOM 탐색 알고리즘객체 순회 (Object traversal)복잡한 알고리즘에서 재귀로 작성하는 것이 더 깔끔하고 이해하기 ..
문제 해결 접근법
·
Algorithm/Theory
목표알고리즘이 무엇인지 이해합니다.알고리즘을 해결할 계획을 세웁니다. 알고리즘이란?알고리즘은 특정 작업을 달성하기 위한 과정이나 일련의 단계를 의미합니다. 이는 컴퓨터 과학에서 매우 중요한 개념으로, 문제 해결의 기본입니다. 알고리즘을 알아야 하는 이유프로그래밍에서 수행하는 거의 모든 작업에는 기본적이든 복잡하든 일종의 알고리즘이 포함됩니다. 문제를 효율적으로 해결하기 위해서는 알고리즘을 이해하고 활용하는 능력이 필요합니다. 문제 해결을 위한 계획을 수립하기1단계: 문제를 이해하기문제를 이해하는 것은 첫 번째 단계입니다. 다음 질문들을 통해 문제를 명확히 할 수 있습니다.문제를 내 방식대로 생각할 수 있는가?문제가 어떤 입력값을 가지고 있는가?문제에 대한 해결책에서 나와야 하는 결과가 무엇인가?입력값이 ..
Javascript에서 배열과 오브젝트의 빅오 (Big - O)
·
Algorithm/Theory
Javascript에서 배열과 객체는 자주 사용되는 데이터 구조입니다. 이 글에서는 배열과 객체의 성능을 빅오 표기법(Big O Notation)을 통해 비교하고, 배열의 시작 부분에 요소를 추가하는데 비용이 많이 드는 이유와 내장 메서드의 런타임 성능을 분석합니다. 객체의 빅오 표기법객체는 정렬되지 않은 데이터 구조로, key-value 쌍으로 저장됩니다. 객체는 정렬이 필요 없을 때, 빠른 접근, 입력, 제거를 원할 때 유용합니다.객체의 빅오삽입: O(1)삭제: O(1)탐색: O(N)접근: O(1)내장 메서드의 빅오Object.keys: O(N)Object.values: O(N)Object.entries: O(N)hasOwnProperty: O(1)배열의 빅오 표기법배열은 정렬된 데이터 구조로, 특정..
얼은펭귄
'프로그래밍' 태그의 글 목록 (2 Page)