본문 바로가기

CS18

Tree 트리 / Binary Tree 이진 트리 트리 구조하나의 뿌리로부터 시작되어 가지가 여러 갈래로 뻗어있는 자료구조를 말한다.그래프의 일종으로, 일반적인 그래프와 달리 순환(한 노드에서 시작해 다른 정점들을 순회해 자기 자신에게 돌아오는 구조)이 없는 연결 그래프이다. 이진 트리이진 트리는 트리 구조 중 특수한 경우로, 자식 노드가 두개인 트리를 뜻한다.두개의 자식 노드는 왼쪽 / 오른쪽 으로 구분할 수 있다. 트리는 다음과 같이 응용하여 사용될 수 있다.수식트리(Expression Tree)허프만 코딩 트리(Huffman coding tree)이진 검색 트리(Binary Search Tree, BST)우선 순위 큐(PQ) 용어 정리노드(Node) : 트리 구조를 이루는 모든 개별 데이터루트(Root) : 트리 구조의 시작점이 되는 노드부모 노.. 2025. 3. 7.
유니온 파인드 Union Find 그래프 알고리즘으로,특정 원소가 속한 집합의 루트(대표자)를 찾고, 두 개의 집합을 합치는 기능을 한다.이를 통해 두 노드가 같은 그래프에 속하는지 판단할 수 있다. 크게 다음의 3가지 과정을 거치게 된다.1. Initialization 초기화각 노드가 각각의 집합에 포함되도록 초기화하는 과정이다. 2. Find 찾기특정 노드의 부모를 찾는다.즉, 해당 노드가 속한 집합의 루트를 반환한다. 3. Union 합치기두 노드 A와 B를 한쪽으로 합칠 때,2번 과정을 통해 찾은 B의 루트 트리를 A의 루트 트리에 연결함으로써 합칠 수 있다.  1. Initialization 각 노드가 자기 자신만을 자신의 집합에 속하도록 배열을 만든다.  2. Find이 배열에 저장된 값들은 각각 자신의 부모 노드를 가르키고 .. 2025. 2. 28.
SOLID SOLID (객체 지향 설계)소프트웨어 설계의 5가지 기본 원칙으로, 코드의 확장성, 유지보수성, 재사용성을 높이고, 변경에 따른 영향을 최소화하기 위해 제안된 법칙이다. 객체 지향 프로그래밍을 보다 효과적으로 수행하기 위함이다. SRP (단일 책임의 원칙, Single responsibility principle)"한 클래스는 하나의 책임(기능)만 가져야 한다." 클래스(컴포넌트)는 하나의 책임(기능)만 가져야 하며, 변경의 이유는 단 하나여야 한다.이를 통해 컴포넌트가 변경되어야 하는 이유가 명확해지고, 그에 따라 시스템의 복잡성이 감소한다.-> 각 부분에 대하여 독립적으로 수정하는 등, 유지보수되고 테스트될 수 있게 된다. 또한 각 부분은 다른 부분에 의존하지 않기 때문에, 재사용성을 높일 수 있.. 2024. 9. 18.
객체 지향 프로그래밍 객체 지향 프로그래밍(Object-Oriented Programming, OOP)개요객체지향 프로그래밍은 컴퓨터 프로그래밍 패러다임 중 하나로, 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러개의 독립된 단위인 '객체'들의 모임으로 파악하는 것이다. 각 객체는 메시지를 주고받고, 데이터를 처리할 수 있다. What is object-oriented programming?= Concept-based Design역할, 책임과 그들 간의 상호작용을 명시하기 위한 개념 식별의 매커니즘!객체 지향 프로그래밍은 오른쪽의 방식에 가깝다.실제 객체의 공통적 속성을 뽑아내서, 추상화하는, 공통 분모화 방식으로 추상화를 진행한다.즉 실체의 구체성을 깎고 공통된 특징을 간결하게 표현하여 추상화된 개념으로 표현.. 2024. 9. 18.