Song[coding diary index]

Song 배열에 코딩 흔적 남겨두기

Algorithm 3

[Algorithm] 정렬 알고리즘 완.전.정.복 1편 (버블, 선택, 삽입)

정렬 알고리즘이란?-> 데이터를 정해진 기준에 따라 의미있는 구조로 재설정하는 것을 말한다. 즉, n개의 입력이 주어지면 내가 원하는 기준에 따라 데이터를 정렬하는 방식이다. ex) 1 ~ 10의 숫자가 무작위로 배치되어있다면, 이를 오름차순으로, 혹은 내림차순으로 설정하여 데이터를 순서대로 설정하는 것을 말한다. 정렬 알고리즘에는 대표적인 6가지의 알고리즘이 존재한다.이를 총 2편에 나눠서 배울 것이며, 시간이 가장 느릴 방식부터, 가장 빠른 방식까지 알아보도록 하겠다. 버블 정렬주어진 데이터의 인접 요소끼리 비교하고, 기준에 따라 swap하는 형식. O(N^2)선택 정렬전체 데이터를 비교한 뒤, 기준에 맞는 데이터를 앞으로 보내는 것을 반복하는 형식. O(N^2)삽입 정렬대상을 선택하고, 정렬된 영역..

알고리즘 2023.12.29

[Algorithm] 슬라이딩 윈도우(Sliding Window) 완.전.정.복

슬라이딩 윈도우(Sliding Window)란? 슬라이딩 윈도우란, 2개의 양 끝점을 가지고, 각 끝점의 범위를 유지한 채로 이동하며 문제를 해결하는 알고리즘 입니다.예를 들어, 설명해드리겠습니다. 1 ~ 7 까지의 배열에서 4개의 연속된 숫자의 합을 계산하는 문제입니다.1 2 3 4 5 6 71 2 3 4 5 6 71 2 3 4 5 6 71 2 3 4 5 6 7이처럼 고정된 크기의 범위를 유지한 채 문제를 해결하는 모습을 볼 수 있습니다.start point(시작점)과 end point(끝점)이 함께 움직이는 모습이 특징입니다!슬라이딩 윈도우 vs 투 포인터 투 포인터(two pointer)과 유사한 점이 많은 알고리즘인데, 두 알고리즘 모두 시작점과 끝점이 있고(+ 양 점을 서로 갱신함), 이 범위를..

알고리즘 2023.09.18

[Algorithm] 투 포인터(two pointer) 완.전.정.복

투 포인터(two pointer)란?- 투 포인터란, 배열에서 필요한 목표에 도달하기 위해, 두 개의 점을 순차적으로 이동하면서 목표에 도달하는지 확인하는 알고리즘입니다. 여기서 포인트는 바로 두 개의 점! 투 포인터라는 알고리즘의 이름을 갖게 한 핵심 원리입니다. 12345                 start                                                                      end 위에서 보시는 것처럼, start와 end가 바로 투 포인터의 핵심 역할을 진행합니다. 현재는 start가 1, end가 3을 가리키는데 특정 조건을 걸어서 조건을 이행하며, start와 end를 이동시켜 원하는 값을 구하도록 합니다.  ??? : "투 포인터보다,..

알고리즘 2023.09.04
LIST