목록C++ (208)
응애맘마조
이제부터 프레임워크를 들어가면서 ImGui부터 시작한다고 했습니다. 사용하는 창은 3개이고 윈도우, 콘솔, ImGui가 됩니다.
조사했던 과제처럼 이진탐색트리에 대해서 강의했었습니다. 일단 이진탐색트리는 둘 중에 한 곳으로 내려갑니다. 이진법을 생각하면 0과 1로 2가지만 되어있는 것처럼 이진탐색트리도 둘 중 한 곳만 쓰기 때문에 이진탐색트리라는 이름이 붙었습니다. 이진탐색트리에도 종류가 많지만 완전이진트리에 대해 적어보겠습니다. 먼저 완전이진트리는 좌우 반씩 쪼개서 내려갈 수 있습니다. 가장 위에 있는 노드가 루트 노드이고 거기서부터 내려갈 때마다 탐색을 해야 되는 노드의 수는 절반 이하로 줄어들게 됩니다. 그래서 최대 레벨 도달 수는 최하단에 있는 노드가 됩니다. 그렇게 균형 잡힌 트리의 탐색에 유리한 구조가 자료구조 중의 map과 set입니다. 그럼 map과 set에 대해 알아보겠습니다. 먼저 map은 검색, 삽입, 삭제가 ..
오늘은 과제 풀이 하면서 강의가 끝났습니다. https://keisukeaso.tistory.com/141 를 참고해 주시기 바랍니다. 진짜 사람 찾기 몇 번 사람이 몇 명을 알고 그 번호의 사람을 메모장에 표시하는 과제였습니다. #include #include #include #include #include using namespace std; struct Human { int id; int knowNum; int* realHuman; bool check = false; void Print() keisukeaso.tistory.com
재귀함수를 끝내고 간단하게 빅오 표기법과 메모장으로 출력을 하는 fstream과 fopen을 강의했습니다. 먼저 빅오 표기법은 알고리즘의 효율성을 위해 표기합니다. 어떤 알고리즘을 수행하는 데 걸리는 시간을 시간 복잡도라고 하고 빅오 표기법으로 시간 복잡도를 표현할 때는 최고차항을 표기합니다. 표기하는 방법은 O(1)이나 O(n)처럼 표기하며 상수시간은 사용자의 컴퓨터 사양에 따라 달라지지만 전부 1로 취급합니다. 배열이나 vector, list를 봤을 때의 빅오 표기법은 배열이나 vector는 임의의 위치에 접근을 할 수 있기 때문에 O(1)이 되지만 list는 임의의 위치에 접근을 할 수 없고 처음 위치부터 가야 하기 때문에 최악의 상황은 마지막 노드에 위치할 수도 있기 때문에 O(n)이 되는 경우도..
과제풀이를 하면서 재귀함수에 대해서 같이 했었습니다. 추가 및 삭제를 하면서 구조체 안에 따로 추가와 제거하는 함수를 따로 만들었습니다. 함수 이름 안에 다시 자신의 함수 이름을 호출하면서 조건문이 false가 될 때까지 계속 반복하도록 하는 함수가 재귀함수입니다. 즉, 정의 단계나 함수 안에서 자신을 다시 호출하는 것입니다. 그래서 추가 및 삭제 함수를 가지고 노드의 뒷부분에 추가 및 삭제하는 함수를 만들었습니다. 실행 영상입니다. 이번엔 어제처럼 이미 사전에 있던 노드가 없이 처음부터 만드는 것으로 했었습니다. 영상처럼 추가 및 삭제가 문제없이 잘 작동됩니다. 아마 내일 임의의 위치에서 추가 및 삭제를 할 것 같습니다. 읽어주셔서 감사합니다.