목록✔ Algorithm (4)
근본없는 코딩

배열(Array, List) 배열은 연속된 메모리 공간에 순차적으로 저장된 데이터 모음 ✨ 사용 사례 . 순차적인 데이터를 저장하며 값보다는 순서가 중요할 때 . 다차원 데이터를 다룰 때 . 어떤 특정 요소를 빠르게 읽어야 할 때 . 데이터 사이즈가 자주 바뀌지 않으며 요소가 자주 추가되거나 삭제되지 않을 때 🚩리스트 / 튜플 / 딕셔너리 ① 리스트 (list) . 리스트는 어떠한 모음이라고 생각하면 이해하기 쉽다. . 파이썬 리스트는 다른 언어의 배열과는 다른 점이 있는데, 바로 요소의 자료형을 통일해주지 않아도 된다는 것이다. Haedal_character = ['해달이', '시라용', '아리', '매기', '사스미'] ② 튜플 (tuple) . 튜플은 리스트와 거의 유사하지만 수정할 수 없다는 특징..

[ 정렬(Sort) 알고리즘 ] 버블정렬, 선택정렬, 삽입정렬, 합병정렬, 퀵정렬 00. Big O 표기법과 시간 복잡도 . 시간 복잡도: 알고리즘의 수행시간을 의미하는 지표 . 공간 복잡도: 알고리즘의 메모리 사용량 ✔️ 빅오(Big O) 표기법 . O(n): 이 함수는 n만큼의 데이터가 주어졌을 때, '최악'의 경우 n만큼의 리소스를 소모한다. ✔️ 정렬 알고리즘 . 정렬 알고리즘: 어떤 데이터 셋이 주어졌을 때 이를 정해진 순서대로 나열하여 재배치하는 문제. . 단순(구현 간단) 하지만 비효율적인 방법: 삽입정렬, 선택정렬, 버블정렬 . 복잡하지만 효율적인 방법: 퀵정렬, 힙정렬, 합병정렬, 기수정렬 01. 버블정렬(Bubble Sort) ✔️ 개념 . 서로 인접한 두 원소를 검사하여 정렬하는 알고..

01. Segment Tree(세그먼트 트리, 구간 트리) 란? . 결과적으로 보면, 배열과 연산이 주어졌을 때 Binary Tree(이진트리)의 구조를 이용해서, 연속적인 배열의 부분을 연산했을 때의 정보를 미리 저장해놓고 빠르게 구하는 방법이다. 예를 들면, 배열에 아래와 같이 arr = [0, 1, 2, 3, 4, 5, 6, 7] 이 들어있다고 가정해보자. arr[3]~arr[5]의 합을 구하라 한다면, arr[3]+arr[4]+arr[5]를 구하게 될 것이다. index 0 1 2 3 4 5 6 7 arr 0 1 2 3 4 5 6 7 합을 구한 뒤, arr[4]가 10으로 변경되어 arr=[0,1,2,3,10,5,6,7]이 된 경우, 다시 arr[3]+arr[4]+arr[5]를 구하라고 한다면..

* Array 기본 ✔️ Array(배열) 이란? 일정한 자료형의 변수들을 하나의 이름으로 열거하여 사용하는 자료구조 ✔️ 1차원 Array의 선언 . 자료형: Array을 이루는 원소(변수)의 자료형 . 이름: 프로그램에서 사용할 Array의 이름 . 길이: Array을 이루는 원소의 ✔️ 1차원 Array의 접근 . 인덱스: 원소의 위치 // Array Arr의 0번째 원소에 10을 저장하라 Arr[0] = 10; // Array Arr의 idx+1번째 원소에 20을 저장하라 Arr[idx] = 20; * Exhaustive Search 완전 검색 ✔️ 완전검색? 문제의 해법으로 생각할 수 있는 모든 경우의 수를 나열해보고 확인하는 기법 ✔️ 특징 ① Brute-force 혹은 G..