본문 바로가기

728x90

전체 글

(54)
[Baekjoon] 1068번 트리 G5 1068번 - 트리1. 문제트리에서 리프 노드란, 자식의 개수가 0인 노드를 말한다.트리가 주어졌을 때, 노드 하나를 지울 것이다. 그 때, 남은 트리에서 리프 노드의 개수를 구하는 프로그램을 작성하시오. 노드를 지우면 그 노드와 노드의 모든 자손이 트리에서 제거된다.예를 들어, 다음과 같은 트리가 있다고 하자.현재 리프 노드의 개수는 3개이다. (초록색 색칠된 노드) 이때, 1번을 지우면, 다음과 같이 변한다. 검정색으로 색칠된 노드가 트리에서 제거된 노드이다.이제 리프 노드의 개수는 1개이다.Input 첫째 줄에 트리의 노드의 개수 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에는 0번 노드부터 N-1번 노드까지, 각 노드의 부모가 주어진다. 만약 부모가 없다면 (루트) -1이 주..
[Dart] factory 예약어에 대한 고찰 1. 개요Dart 에서는 factory 의 예약어가 존재한다. 이것이 어떻게 쓰이는지에 대해 살펴보자.2. 설명factory 예약어는 생성자를 정의할 때 사용되고, 객체를 생성하는 과정을 제어할 수 있도록 있도록 하는 특별한 예약어이다.3. 혼동될 여지가 있는 문법들Dart 에서 MyClass.name() 와 같이 표현될 수 있는 형태는 여러 가지가 존재한다. 따라서 실제 그 구현부를 확인하지 않고 해당 클래스를 사용하는 경우, 혼란을 야기할 수 있다. 다음의 세 가지 경우가 전술한 형태로 표현된다.정적 메소드 (Static Method)명명된 생성자 (Named Constructor)팩토리 생성자 (factory constructor)3.1. 정적 메소드 (Static Method)정적 메소드는 특정 ..
[Design Pattern] 싱글톤 (Singleton) 패턴 1. 개요싱글톤 디자인 패턴 (Singleton Design Pattern)은 특정 클래스의 객체가 단 한 번만 생성되고, 그 객체에 대한 전역적인 접근 지점을 제공하는 디자인 패턴이다.2. 상황한 클래스의 인스턴스가 오직 하나만 필요한 경우그 인스턴스에 대한 전역적인 접근이 필요한 경우공유된 자원에 대한 중앙 집중적인 제어가 필요한 경우3. 다이어그램3.1. 설명Singleton 클래스의 생성자는 private 으로 외부에서 사용될 수 없다.private 의 정적 변수 instance 가 존재한다.public 의 정적 메소드 getInstance() 를 통해 instance 에 null 이 아닌 값이 존재하면 그것을 반환하고, 그렇지 않으면 객체를 새로 생성하여 instance 변수를 초기화한 후 그 ..
[Baekjoon] 1193번 분수찾기 S5 <Short> 1193번 - 분수찾기 1. 문제 무한히 큰 배열에 다음과 같이 분수들이 적혀있다. 1/1 1/2 1/3 1/4 1/5 … 2/1 2/2 2/3 2/4 … … 3/1 3/2 3/3 … … … 4/1 4/2 … … … … 5/1 … … … … … … … … … … … 이와 같이 나열된 분수들을 1/1 → 1/2 → 2/1 → 3/1 → 2/2 → … 과 같은 지그재그 순서로 차례대로 1번, 2번, 3번, 4번, 5번, … 분수라고 하자. X가 주어졌을 때, X번째 분수를 구하는 프로그램을 작성하시오. Input 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. Output 첫째 줄에 분수를 출력한다. 2. 사용 알고리즘 수학 (Math) 3. 풀이 해당 풀이는 가능한 한 코드의 길이를 줄이고자..
[Design Pattern] 추상 팩토리 (Abstract Factory) 패턴 해당 포스팅은 [Design Pattern] 팩토리 (Factory) 패턴 의 하위 문서입니다. 1. 개요 추상 팩토리 디자인 패턴 (Abstract Factory Design Pattern) (이하 추상 팩토리) 은 관련된 여러 객체들의 생성(Creation)과 책임(Responsibility)을 공장(Factory) 의 하위 클래스에 위임(Delegate) 하여 하위 클래스에서 연관된 객체들을 생성하고 이들을 조합하여 사용할 수 있도록 하는 패턴이다. 추상 팩토리 여러 메소드로 이루어진 인터페이스를 제공하고 각 메소드는 서로 연관된 객체를 생성한다. 2. 상황 객체 생성이 복잡하거나 변경되기 쉬울 때 객체 생성 코드가 중복될 때 3. 다이어그램 3.1. 설명 Product1, Product2: 제품군..
[Design Pattern] 팩토리 메소드 (Factory Method) 패턴 해당 포스팅은 [Design Pattern] 팩토리 (Factory) 패턴 의 하위 문서입니다. 1. 개요 팩토리 메소드 디자인 패턴 (Factory Method Design Pattern) (이하 팩토리 메소드) 은 객체 생성(Creation)과 책임(Responsibility)을 공장(Factory) 의 하위 클래스에 위임(Delegate)하여 하위 클래스에서 어떤 클래스의 인스턴스를 생성할지 결정하도록 하는 패턴이다. 팩토리 메소드는 주로 단일 제품에 대한 생성을 다루고, 하위 클래스에서 해당 메소드를 구현함으로써 특정 클래스의 한다. 2. 상황 객체 생성이 복잡하거나 변경되기 쉬울 때 객체 생성 코드가 중복될 때 3. 다이어그램 3.1. 설명 Factory 가 추상 클래스로 존재한다. Produc..
[Design Pattern] 팩토리 (Factory) 패턴 1. 개요 팩토리 디자인 패턴 (Factory Design Pattern)은 객체의 생성 부분을 공장(Factory) 객체에 위임(Delegate)하는 패턴이다. 2. 종류 해당 패턴은 다음 세 가지 종류의 디자인 패턴을 갖는다. 2.1. 단순 팩토리 패턴 (Simple Factory Pattern) [Design Pattern] 단순 팩토리 (Simple Factory) 패턴 2.2. 팩토리 메소드 패턴 (Factory Method Pattern) [Design Pattern] 팩토리 메소드 (Factory Method) 패턴 2.3. 추상 메소드 패턴 (Abstract Method Pattern) [Design Pattern] 추상 팩토리 (Abstract Factory) 패턴 관련 포스팅 [Desi..
[Design Pattern] 단순 팩토리 (Simple Factory) 패턴 해당 포스팅은 [Design Pattern] 팩토리 (Factory) 패턴 의 하위 문서입니다. 1. 개요 단순 팩토리 디자인 패턴 (Simple Factory Design Pattern) (이하 단순 팩토리) 은 객체의 생성 부분을 공장(Factory) 클래스에 위임(Delegate)하는 패턴이다. 단순 팩토리는 팩토리 디자인 패턴의 가장 단순한 형태로, 팩토리 디자인 패턴 그 자체의 의미를 갖는다. 2. 상황 객체 생성이 복잡하거나 변경되기 쉬울 때 객체 생성 코드가 중복될 때 3. 다이어그램 3.1. 설명 Product 객체를 생성하는 코드는 Factory 클래스의 create() 에 구현되어 있다. 이때, 반드시 생성할 객체를 구분할 수 있는 색인(int), 열거형(Enum), 문자열(String..

728x90