본문 바로가기

코딩 테스트/개념34

정렬 알고리즘 - 버블 (bubble) 데이터의 인접 요소끼리 비교하고, swap 연산을 수행하며 정렬하는 방식 - 선택 (selection) 데이터에서 가장 크거나 작은 데이터를찾아가 선택을 반복하면서 정렬하는 방식 - 삽입 (insertion) 대상을 선택해 정렬된 영역에서 선택 데이터의 적절한 위치를 찾아 삽입하면서 정렬하는 형식 - 퀵 (quick) pivot 값을 선정해 해당 값을 기준으로 정렬하는 방식 - 병합 (merge) 이미 정렬된 부분집합들을 효율적으로 병합해 전체를 정렬하는 방식 - 기수 (radix) 데이터의 자릿수를 바탕으로 비교해 데이터를 정렬하는 방식 2024. 4. 21.
스택 & 큐 스택 stack - 삽입 & 삭제 연산으로 후입선출 (Last-in First-out) 사용 - 삽입과 삭제가 한 쪽에서만 일어남 - 깊이 우선 탐색(Depth First Search), 백트래킹 종류에 효과적 - "후입선출" 개념 자체가 재귀 함수 알고리즘 원리와 비슷 그림으로 이해하면 다음과 같다 큐 Queue - deque로 구현 - 삽입 & 삭제 연산이 선입선출 (First-in First-out) 이용 - 먼저 들어온 데이터가 먼저 나가는 구조 - 삽입과 삭제가 양방향으로 일어남 - 너비 우선 탐색(Breath First Search)에 효과적 그림으로 이해하면 다음과 같다 우선순위 큐 Priority Queue - 값이 들어간 순서와 상관없이 우선순위가 높은 데이터가 먼저 나옴 - front에.. 2024. 4. 20.
슬라이딩 윈도우 두 개의 포인트로 범위를 지정한 다음 범위를 유지한 채로 이동하며 값을 구하는 방법! 투 포인터의 확장 개념이라고 이해하면 좋을 듯! 범위는 고정된 채로 이동할 때 마다 해당하는 값에서 더해지고 빠지는 과정을 통해서 값을 구하는 방법!! 그림으로 표현하면 아래와 같다. 슬라이딩 윈도우로 deque를 구현할 수 있다고 하는데 덱은 데이터를 삽입하고 삭제할 수 있는 자료 구조로 리스트와 어레이와 비슷한 개념으로 이해했다. 하지만 관련된 함수가 조금 다르니까 이를 기억하도록 하자 그림으로 표현하며 아래와 같다. 코드로 deque를 불러오려면 from collections import deque deque를 생성하려면 dq = deque() 이런 방식으로 하면 된다! 2024. 4. 14.
투 포인터 투 포인터는 두 개의 포인트를 잡고 그와 관련된 값을 구하고 포인트를 옮겨가면서 해당하는 값을 부여하는 방법이다 즉, 포인트의 값이 변함에 따라 그와 관련된 값이 변한다. 그러므로 전체 데이터나 리스트를 확인할 필요 없이 해당 하는 부분만 바꾸면 되므로 코드의 계산 용량이 많이 줄어든다 그림으로 표현하면 아래와 같다! 2024. 4. 13.
728x90