공부 15

[디자인패턴] 빌더 패턴 (Builder Pattern)

빌더 패턴 (Builder Pattern) 의도 : 객체 생성 방법과 표현 방법을 정의하는 클래스를 분리하여 서로 다른 표현이라도 동일한 절차를 제공할 수 있도록 하는 패턴 활용 객체 생성 알고리즘이 조립 방법에 독립적인 경우 합성할 객체 표현이 다르더라도 생성 절차에서 표현 과정을 지원해야하는 경우 장점 제품 내부 표현 다양화 생성과 표현 코드 분리 복합 객체 생성 절차의 세밀화 구조 Builder : Product객체 일부 요소를 생성하기 위한 추상 인터페이스 정의 ConcreateBuilder: Builder에 정의된 인터페이스 구현, 제품(Product) 구현 및 제공 Director: 제품 생성 절차를 담당하며 필요에 따라 Builder 인터페이스를 요청하여 제품 생성 Product: 생성된 복..

[디자인패턴] 추상 팩토리 패턴 (Abstract Factory Pattern)

추상 팩토리 패턴(Abstract Factory Pattern) 의도 : 구체화된 서브클래스 정의 없이 서로 관련 있는 객체 군 생성을 위한 인터페이스를 제공한다. 활용 객체 생성, 구성 · 표현 방식 무관한 시스템을 독립적으로 만들 경우 여러 제품군 중 하나만을 선택해 시스템을 설정해야 하며 이를 나중에 다른 것으로 대체할 수 있어야 하는 경우 관련 객체들이 함께 사용되도록 설계되었고 이 제약이 지켜지도록 하고 싶을 경우 제품의 라이브러리를 제공하고 제품의 구현이 아닌 인터페이스만을 노출시키고 싶을 경우 장점 구체적인 클래스 분리 제품군의 쉬운 교체 제품군 일관성 증진 단점 제품 추가의 어려움 제품 추가가 될 시 팩토리를 모두 수정해주어야 함 예시 한 소비자가 삼성과 애플 두 핸드폰 판매 브랜드의 핸드..

[알고리즘/재귀호출/Python] 백준 2747 - 피보나치 수

문제 : 2747번: 피보나치 수 (acmicpc.net) 2747번: 피보나치 수 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net 사용언어 : Python 3 시간제한 : 1초 메모리 제한 : 128 MB 문제 설명 n 번째 피보나치 수를 구하는 문제이다. 피보나치 수의 0과 1번째 피보나치 수는 각각 0과 1이다. 이후 n번째(n>1) 피보나치 수는 바로 앞 두 피보나치 수의 합이 된다. $F_{n} = F_{n-1} + F_{n-2}$ (n > 1) 입력 첫째 줄에 n이 주어진다. n은 45보다 ..

공부/알고리즘 2022.03.16

[알고리즘/계수정렬/Python] 백준 10989 - 수 정렬하기 3

문제 : 10989번: 수 정렬하기 3 (acmicpc.net) 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 사용언어 : Python 3 시간제한 : 5초 메모리 제한 : 8 MB 문제 설명 수의 범위가 제한적이나 많은 수의 데이터를 정렬하는 문제이다. 제한 시간 내에 정렬을 수행 완료해야 한다. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. 예제 입력 10 5 2 3 1 4 2 3 5 1 7 출력 첫째..

공부/알고리즘 2022.03.16

[알고리즘/Union-Find/Python] 백준 4195 - 친구 네트워크

문제 : 4195번: 친구 네트워크 (acmicpc.net) 4195번: 친구 네트워크 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스의 첫째 줄에는 친구 관계의 수 F가 주어지며, 이 값은 100,000을 넘지 않는다. 다음 F개의 줄에는 친구 관계가 생긴 순서대로 주어진 www.acmicpc.net 사용언어 : Python3 입력 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스의 첫째 줄에는 친구 관계의 수 F가 주어지며, 이 값은 100,000을 넘지 않는다. 다음 F개의 줄에는 친구 관계가 생긴 순서대로 주어진다. 친구 관계는 두 사용자의 아이디로 이루어져 있으며, 알파벳 대문자 또는 소문자로만 이루어진 길이 20 이하의 문자열이다. 예제 입력 2 3 Fred Barn..

공부/알고리즘 2022.03.12
반응형