Mgcllee

[자료구조] 이진 탐색 트리

이진 트리를 이용한 탐색 이전 포스트에서 이진 트리에 대해 알아보았습니다. 이번 포스트에서는 이진 트리를 활용한 이진 탐색 트리에 대해 알아보겠습니다. 이진 탐색 트리는 다음과 같은 특징이 있습니다. 키 중복 없음 특정 노드의 왼쪽 서브 트리는 특정 노드 보다 작은 키 값만 존재 특정 노드의 오른쪽 서브 트리는 특정 노드 보다 큰 키...

[SideProject] 어째서 코드를 깨끗하게 만들어야할까

프로그램의 소스 코드는 한 번에 완벽하게 작성할 수 없습니다. 팀 프로젝트에서는 한 팀원이 작성한 코드를 다른 팀원이 읽을 수 있고 개인 프로젝트에서도 기능을 추가하거나 수정하다 보면 이전 코드를 읽을 때가 있습니다. 여기서 이전 코드를 이해하는데 시간이 소모될 수 있고 최악의 경우, 매번 같은 코드 이해하고자 처음부터 다시 읽어야 될 수 있습니다. ...

[자료구조] 이진 트리

이진 트리의 개념 이진 트리는 최대 차수가 2 인 트리입니다. 즉, 트리에 있는 모든 노드는 자식 노드의 수가 2개 이하로 갖고 있는 경우입니다. 2개 이하라고 한 이유는 트리 모양에 따라 이름이 다르기 때문입니다. 대표적으로 정 이진 트리, 포화 이진 트리, 완전 이진 트리, 균형 이진 트리 등이 있습니다. [모든 노드의 차수가 2인 이진 ...

[백준][9375] 패션왕 신해빈

이 포스트는 백준 사이트의 패션왕 신해빈 문제 풀이입니다. 문제 제약 확인 문제의 입력 조선에서 “같은 종류의 의상은 하나만 입을 수 있다.” 라고 하였으므로 옷의 각 종류에서 선택되는 것은 1개 입니다. 풀이 이 문제는 해시맵을 사용하여 간단하게 풀 수 있는 문제입니다. 예시 문제를 통해 수식을 만들고 코드를 작성해 보겠습니다. ...

[알고리즘] Union-Find 알고리즘

서로소 집합을 찾기 서로 중복되지 않는 부분 집합들을 구현할 때, 사용되는 것이 Union-Find 알고리즘입니다. 예를들어, 여러 사람의 관계가 그래프의 노드(사람)과 엣지(관계)로 표현될 때 관계 그래프의 총 개수를 확인할 수 있습니다. 이때, 반드시 확인해야 할 것은 두 집합이 반드시 상호 배타적인 부분 집합(서로소 집합) 이여야 한다는 점입니...