본문 바로가기

트리/이진 트리

(4)
코드트리 메신저 https://www.codetree.ai/training-field/frequent-problems/problems/codetree-messenger/description?page=1&pageSize=20 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.www.codetree.ai 처음에는 가장 간단하게 DFS 구현을 해보았다.최대 깊이가 20이어서 시간 초과 났다. 그 다음에는 노드에 cnt를 주고init() 할 때 Bottom-up으로 권한에 따라서 cnt를 증가시키고 문제를풀려고 해보았다.부모 교환 -> LCA처럼 같아질 때까지 부모도 같게 만든다.권한 변환 -> 변환하고 B..
상품권 배분 보호되어 있는 글입니다.
사칙연산 유효성 검사 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV141176AIwCFAYD SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 연산이 가능하려면 가운데에 연산자가 들어가야한다. 트리가 완전 이진 트리 형식으로 주어지므로 트리가 갖는 정점 개수가 N이면 N/2번 정점까지는 자식 노드를 가진다. 따라서 유효하지 않은 경우는 두 가지다. 1. 정점 번호가 N/2 이하일 때, 숫자를 가짐 2. 정점 번호가 N/2보다 클 때, 연산자를 가짐 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ..
이진 트리 기초 이진 트리 각 노드의 자식 노드의 개수가 2 이하로 구성된 트리 완전 이진 트리 마지막 레벨은 왼쪽부터 채워지 마지막 레벨을 제외하고 완전하게 노드들이 채워짐. 이진 트리의 표현은 배열!! 그래프 표현 방식은 일반적으로 쓰지 않음. 루트 노드의 index는 1부터 시작해야한다!! 그래서 크기 초기화를 할 때, 2 ^ h + 1로 초기화를 한다. 루트 노드 -> index = 1 부모 노드 -> index = index / 2 왼쪽 자식 노드 -> index = index * 2 오른쪽 자식 노드 -> index = index * 2 + 1 트리 순회하기 preorder 현재 -> 왼쪽 -> 오른쪽 inorder 왼쪽 -> 현재 -> 오른쪽 postorder 왼쪽 -> 오른쪽 -> 현재 https://ww..