컴퓨터는 현실 세계에서의 반복적이고 복잡한 자료들을 효율적으로 처리하기 위한 기계이다. 컴퓨터를 이용해서 자료를 처리하려면 먼저 컴퓨터가 잘 다룰 수 있는 형태로 표현해주어야만 한다. 사람들이 사물을 편리하고 효율적으로 사용하기 위해 정리하는 것과 마찬가지로 컴퓨터에서
1. 해쉬 구조 key에 value를 저장하는 데이터 구조. 파이썬의 딕셔너리가 해쉬 테이블의 예이다. 보통 배열로 미리 Hash Table 사이즈만큼 생성 후에 사용 파이썬에서는 해쉬를 별도 구현 할 필요가 없음. 2. 용어 해쉬 : 임의 값을 고정 길이로 변환 해쉬 테이블 : 키 값의 연산에 의해 직접 접근이 가능한 데이터 구조 해싱 함수: key에...
정렬 알고리즘은 데이터셋이 주어졌을 때 이를 정해진 순서대로 나열하여 재배치하는 것이다.이때 불규칙한 데이터들을 정렬 후 탐색해야하는 경우가 있는데 이때 상황에 맞는 알고리즘을 사용하여 효과적으로 문제를 해결하는 것이 중요하다.대표적인 정렬 알고리즘은 다음과 같다.선택
흔히 말하는 "업다운 게임"을 해본 사람은 이진 탐색 알고리즘을 쉽게 이해할 것이다.1~100까지 중 어떤 수를 찾는 방법은 여러가지가 있겠지만, 업다운 게임을 할 때는 보통 절반 값을 부르고 업인지 다운인지에 따라 또 절반값을 부르는 방식으로 진행한다.이진 탐색도 비
Traversal 이란 > 트리의 노드들을 지정된 순서대로 방문하는 것이다. > 전위 순회 (Preorder Traversal) 중위 순회 (Inorder Traversal) 후위 순회 (Postorder Traversal) Level Traversal > 위와 같이
트리나 그래프에서 한 경로로 끝까지 깊숙이 탐색하고 다시 돌아와 다른 경로로 탐색하는 과정이다.한 경로의 탐색이 끝나면 다시 이전 과정으로 돌아가 다른 경로로 탐색을 반복하므로 스택이나 재귀를 사용하여 구현하는 경우가 일반적이다.트리나 그래프에서 루트 노드부터 탐색을