본문 바로가기

Data/Coding Test2

[알고리즘] 완전탐색법(Brute Force) ✅완전탐색이란? 완전 탐색이란 문제 해결을 위해 모든 경우의 수를 다 시도하는 방법이다. Brute Force는 Brute(단순히, 순전히)와 Force(힘)이란 단어의 조합으로 직역하면 단순히 힘만 가지고 밀어 붙인다는 의미이다. 이는 컴퓨터로 해킹을 할 때, 개인의 정보에서 유추된 것 없이 모든 가짓수를 다 시도하여 해킹하는 방법에서 유래되었다고 한다. 흔히 자물쇠를 풀 때 0000~9999까지 모든 방법을 다 동원하는 방식으로 설명된다. ✅완전탐색 구현 방식 1. For, while 문 : 반복문을 사용하여 처음부터 끝까지 모든 가짓 수를 시도한다. 2. 재귀함수 : 재귀함수를 활용하여 반복문의 사용을 줄이고, 효율적으로 완전탐색을 시도할 수 있다. 재귀함수(자기 자신을 호출하는 함수)를 활용하면 .. 2022. 7. 3.
자료구조: 우선순위 큐(Priority Queue)와 힙(Heap) ✅우선순위 큐란? 우선순위가 가장 높은 데이터를 먼저 삭제하는 구조 - 가장 먼저 삽입된 데이터를 삭제하는 일반적인 큐(Queue)와 다르다. 우선순위 큐는 데이터를 우선순위에 따라 처리하고 싶을 때 사용 ✅우선순위 큐 구현방식 1) 리스트 리스트에서 인덱싱해서 꺼내는 방식. 리스트 자료형을 그대로 사용. 2) 힙(heap) 각 방식의 시간 복잡도 우선순위 큐 구현 방식 삽입시간 삭제시간 리스트 O(1) O(N) 힙 O(logN) O(logN) ✅힙(heap) 힙은 완전 이진 트리 자료 구조의 일종 * 완전 이진 트리 자료구조란? : 루트노드 부터 시작하여 왼쪽 자식노드, 오른쪽 자식 노드 순서대로 데이터가 차례대로 삽입되는 트리를 의미 힙의 방식 1) 최소 힙 : 루트 노드가 가장 작은 값을 가짐 값이.. 2022. 6. 27.