[자료구조] 트리 구조
트리의 개념 트리는 주요 자료구조 중 하나로 노드(Node)와 간선(Edge)들이 연결된 계층적 자료구조 입니다. 트리는 다양한 응용 분야에서 활용되며 특히, 계층적으로 데이터를 다루거나 데이터를 효율적으로 검색, 삽입, 삭제하는 작업에서 자주 사용됩니다. 단어 정리 기본 용어 설명 ...
트리의 개념 트리는 주요 자료구조 중 하나로 노드(Node)와 간선(Edge)들이 연결된 계층적 자료구조 입니다. 트리는 다양한 응용 분야에서 활용되며 특히, 계층적으로 데이터를 다루거나 데이터를 효율적으로 검색, 삽입, 삭제하는 작업에서 자주 사용됩니다. 단어 정리 기본 용어 설명 ...
이 포스트는 백준 사이트의 패션왕 신해빈 문제 풀이입니다. 문제 제약 확인 문제의 입력 조선에서 “같은 종류의 의상은 하나만 입을 수 있다.” 라고 하였으므로 옷의 각 종류에서 선택되는 것은 1개 입니다. 풀이 이 문제는 해시맵을 사용하여 간단하게 풀 수 있는 문제입니다. 예시 문제를 통해 수식을 만들고 코드를 작성해 보겠습니다. ...
서로소 집합을 찾기 서로 중복되지 않는 부분 집합들을 구현할 때, 사용되는 것이 Union-Find 알고리즘입니다. 예를들어, 여러 사람의 관계가 그래프의 노드(사람)과 엣지(관계)로 표현될 때 관계 그래프의 총 개수를 확인할 수 있습니다. 이때, 반드시 확인해야 할 것은 두 집합이 반드시 상호 배타적인 부분 집합(서로소 집합) 이여야 한다는 점입니...
이 포스트는 개인적으로 C++ 스마트 포인터를 공부하며 기록한 내용으로 이후 변경될 수 있습니다. 메모리 낭비하기 C++ 는 new 연산자로 메모리에 동적으로 할당하고 사용이 끝나면 delete 연산자로 사용중인 메모리를 해제합니다. 그러나 코드가 복잡해지면 delete 를 너무 일찍 사용해서 이미 해제된 메모리에 접근하거나, delete 자체...
이 포스트는 TDD 를 공부하기 위해 작성된 글로 잘못된 내용이 있으면 댓글 부탁드립니다. TDD 개념 잡기 TDD 는 Test Driven Development 의 약자로 테스트 주도 개발 이라고 합니다. 반복적으로 테스트를 진행해서 프로그램을 완성하는 소프트웨어 개발 방법론 중 하나로 작은 단위 테스트들을 작성해 이를 통과한 코드만 추가하는 ...
이 포스트는 백준 사이트의 일곱 난쟁이 문제 풀이입니다. 문제 문제의 설명처럼 9명 중 7명을 선택하되 그 합이 100 이 되는 것을 출력해야 합니다. 따라서 9명 중 7명을 선택하는 모든 조합을 찾고 만약 7명의 합이 100이 될 경우, 즉시 값을 출력합니다. vector<int> height; void input_hei...
C 언어는 데이터 원본에 접근하기 위해 포인터 를 사용합니다. 그러나 포인터는 몇 가지 위험성을 가지고 있기 때문에 이 위험성을 줄이고자 C++ 에서는 참조 를 사용합니다. 먼저 포인터의 위험성을 확인한 뒤 C++ 참조 연산자와 무엇이 다른지 확인해보겠습니다. 포인터 개념 짚고 가기 포인터는 메모리 주소 값 을 저장하는 변수입니다. 어떤 ...
코딩테스트 연습 - 디스크 컨트롤러 바로가기 문제 설명 문제 풀이 문제 설명처럼 작업은 100이 되었을 때, 완료되며 현재 작업이 완료되지 않으면 뒤에 작업은 100이 되어도 끝낼 수 없습니다. 따라서 현재까지 진행된 작업을 몇 번 더 진행해야 하는지 확인하고 그 횟수를 이용해 답을 구헀습니다. int JOB_COUNT; qu...
문제 제약 확인 총 스티커의 수가 2N 개일 때 N 의 범위가 \(1 <= N <= 100,000\) 이므로 최대 200,000 개가 입력될 수 있습니다. 따라서 시간 복잡도가 \(O(N)\) 이하의 알고리즘을 사용해야 합니다. 알고리즘 선택 스티커를 선택할 때, 각 선택은 작은 문제로 나누어 접근할 수 있습니다. 즉, a번...
이 포스트는 개발자북클럽 챌린지 후기입니다. 프로그래머로서 여러 알고리즘을과 새로운 기술을 배우는 것도 중요하지만 깨끗한 코드를 작성하는 것 또한 매우 중요하다고 생각합니다. 여러 명이 작성하는 코드는 읽기 편하고 깨끗하게 작성되어야 유지, 보수와 기능 추가에서도 문제가 없기 때문입니다. 그래서 제가 진행했던 프로젝트 코드를 깨끗하게 리팩토...