728x90
반응형

BST 2

백준, BOJ, 1764번 C++ [CPP]

음.. 입력과 출력이 많은 문제다. 그냥 풀자. 그렇다면 검색이 빠른 BST로 구성된 자료구조를 쓰는 것이 유리하다. 오늘은 map이 그것이다. 사실 시간은 충분한 것 같다만 https://www.acmicpc.net/problem/1764 #맞는 풀이 #include #include #include using namespace std; int N,M; int cnt = 0; //N과 M이 큰 숫자이기 때문에 검색이 빠르려면 map? //또 이름이 중복이 없단다. int main(){ ios::sync_with_stdio(0); cin.tie(0); map donthear; map dontsee; cin >> N >> M; for(int i = 0; i> s; donthear.insert(make_pai..

Tree 이진탐색트리 Binary Search Tree(BST) [자료구조]

저번에 이진트리에서 삽입, 연산, 탐색에 대해 함수를 만들고 넘어가지 않았다. 왜냐하면 선형적인 구조의 자료구조가 아니기 때문에 연산 후에도 이러한 계층적 자료구조의 형태를 유지하기 위해 따로 해줘야 하는 부분이 있어서 그랬다. 즉, 트리의 조건을 유지하면서 연산을 수행해야한다. 그 연산을 하기 위해서 BST라는 것을 이용해보자 우선 이진탐색트리를 정의하자면 1. key(왼쪽서브트리)≤key(루트노드)≤key(오른쪽서브트리) 2. 이진탐색를 중위순회하면 오름차순으로 정렬된 값을 얻을 수 있다. 그렇다면 이 이진트리는 정렬된 것일까? 맞다. 거의 모든 데이터들은 정렬되었을 때 의미를 가지게 된다. 탐색연산 이진탐색트리에서 특정한 값을 찾는다. 그렇다면 무엇을 기준으로 찾을까? 바로 key 값입니다. 트리기..

728x90
반응형