전체 글 97

디자인 패턴 - 관계형 패턴

더보기 생성 디자인 패턴 싱글턴 패턴 추상 팩토리 패턴 팩토리 메소드 패턴 행동 디자인 패턴 템플릿 메소드 패턴 상태 패턴 반복자 패턴 전략 패턴 옵저버 패턴 구조 디자인 패턴 데코레이터 패턴 프록시 패턴 컴포지트 패턴 어댑터 패턴 퍼사드 패턴 관계형 패턴 브릿지 패턴 책임 연쇄 패턴 플라이웨이트 패턴 인터프리터 패턴 중재자 패턴 메멘토 패턴 프로토타입 패턴 비지터 패턴 관계형 패턴 브릿지 패턴 구현부와 추상층을 분리하여 각각 독립적으로 변형, 확장이 가능한 패턴 기능과 구현을 별도의 클래스에서 구현 책임 연쇄 패턴 요청을 처리할 수 있는 처리 객체의 집합으로 만들어 결합을 느슨하게 만들기 위한 디자인 패턴 요청을 처리할 수 있는 객체를 찾을 수 있을때까지 집합에 요청을 전달하는 패턴 발신자와 수신자를 ..

공부 학습 2022.11.08

디자인 패턴 - 구조 디자인 패턴

더보기 생성 디자인 패턴 싱글턴 패턴 추상 팩토리 패턴 팩토리 메소드 패턴 행동 디자인 패턴 템플릿 메소드 패턴 상태 패턴 반복자 패턴 전략 패턴 옵저버 패턴 구조 디자인 패턴 데코레이터 패턴 프록시 패턴 컴포지트 패턴 어댑터 패턴 퍼사드 패턴 관계형 패턴 브릿지 패턴 책임 연쇄 패턴 플라이웨이트 패턴 인터프리터 패턴 중재자 패턴 메멘토 패턴 프로토타입 패턴 비지터 패턴 구조 디자인 패턴 데코레이터 패턴 객체에 추가요소를 동적으로 더하는 패턴 서브클래스를 이용하는 것보다 유연하게 기능을 확장할수 있음 클래스가 너무 많아지거나 객체를 알아보기 어려울수 있음 프록시 패턴 특정 객체에 대한 접근을 제어하는 별도의 대리 객체를 제공하는 패턴 다른 객체와 이어지는 인터페이스 역할을 제공할수 있는 패턴 컴포지트 패..

공부 학습 2022.11.08

디자인 패턴 - 행동 디자인 패턴

더보기 생성 디자인 패턴 싱글턴 패턴 추상 팩토리 패턴 팩토리 메소드 패턴 행동 디자인 패턴 템플릿 메소드 패턴 상태 패턴 반복자 패턴 전략 패턴 옵저버 패턴 구조 디자인 패턴 데코레이터 패턴 프록시 패턴 컴포지트 패턴 어댑터 패턴 퍼사드 패턴 관계형 패턴 브릿지 패턴 책임 연쇄 패턴 플라이웨이트 패턴 인터프리터 패턴 중재자 패턴 메멘토 패턴 프로토타입 패턴 비지터 패턴 행동 디자인 패턴 템플릿 메소드 패턴 추상 클래스를 통해 알고리즘의 골격을 정의하고 구체적인 알고리즘을 부분적으로 다시 정의 할수 있도록 제공하는 패턴 일부 구현으로 인해 알고리즘의 구조를 변경하지 않아도 된다. 상태 패턴 현재 상태에 따라 적절한 객체로 연결해주는 별도의 상태기계를 만들어 호출해주는 패턴 GoF 디자인 패턴 중 한개이다..

공부 학습 2022.11.08

디자인 패턴 - 생성 디자인 패턴

더보기 생성 디자인 패턴 싱글턴 패턴 추상 팩토리 패턴 팩토리 메소드 패턴 행동 디자인 패턴 템플릿 메소드 패턴 상태 패턴 반복자 패턴 전략 패턴 옵저버 패턴 구조 디자인 패턴 데코레이터 패턴 프록시 패턴 컴포지트 패턴 어댑터 패턴 퍼사드 패턴 관계형 패턴 브릿지 패턴 책임 연쇄 패턴 플라이웨이트 패턴 인터프리터 패턴 중재자 패턴 메멘토 패턴 프로토타입 패턴 비지터 패턴 생성 디자인 패턴 싱글톤 패턴 특정 클래스에 객체 인스턴스가 한개만 만들어지도록 하는 패턴 전역변수와 마찬가지로 어디서든지 액세스가 가능하다 추상 팩토리 패턴 서브 클래스에 의존하지않고 서로 연관되거나 의존적인 객체로 이루어진 제품군을 생산하는 인터페이스를 제공하는 패턴 특정 인스턴스를 만들기위한 일련의 클래스를 포함한 Factory 추..

공부 학습 2022.11.08

UML 다이어그램 정리 - 구조 다이어그램

UML이란? UML다이어그램 : 시스템이나 프로세스의 동작 및 구조를 시각적으로 표현하기 위한 방법 UML다이어그램의 종류 더보기 구조다이어그램 소프트웨어나 시스템의 정적 구조를 나타내고 추상화 및 구현에 다양한 계층을 표현하는 다이어그램 모듈의 계층과 구성요소들이 서로 어떻게 연결되어있고 상호작용하는지 시각화 클래스 다이어그램 객체 다이어그램 복합체 다이어그램 배치다이어그램 컴포넌트 다이어그램 패키지 다이어그램 행위 다이어그램 활동 다이어그램 상태 머신 다이어그램 유스케이스 다이어그램 상호작용 다이어그램 순차 다이어그램 상호작용 개요 다이어그램 타이밍 다이어그램 클래스 다이어그램 {접근 제어자} {변수/메소드명}: {타입} 추상메소드 표현법 클래스 관계 표현법 연관 / 상속 / 구현 / 의존 / 집합 ..

공부 학습 2022.11.08

UML 다이어그램 정리 - 활동 다이어그램

UML다이어그램의 종류 구조다이어그램 소프트웨어나 시스템의 정적 구조를 나타내고 추상화 및 구현에 다양한 계층을 표현하는 다이어그램 모듈의 계층과 구성요소들이 서로 어떻게 연결되어있고 상호작용하는지 시각화 클래스 다이어그램 객체 다이어그램 복합체 다이어그램 배치다이어그램 컴포넌트 다이어그램 패키지 다이어그램 더보기 행위 다이어그램 활동 다이어그램 상태 머신 다이어그램 유스케이스 다이어그램 상호작용 다이어그램 순차 다이어그램 상호작용 개요 다이어그램 타이밍 다이어그램 활동 다이어그램 처리과정이 수행되는 동안 일어나는 일을 단계적으로 표현한 다이어그램 State diagram의 확장 활동에 중점을 둔 다이어그램으로 업무 처리과정을 분석할때 유용함 표현 요소 상자 : 오브젝트 / 클래스의 이름 다이아몬드 : ..

공부 학습 2022.11.08

백준10815 - 숫자카드

문제 숫자 카드는 정수 하나가 적혀져 있는 카드이다. 상근이는 숫자 카드 N개를 가지고 있다. 정수 M개가 주어졌을 때, 이 수가 적혀있는 숫자 카드를 상근이가 가지고 있는지 아닌지를 구하는 프로그램을 작성하시오. 예시 입력 더보기 5 6 3 2 10 -10 8 10 9 -5 2 3 4 5 -10 예시 출력 더보기 1 0 0 1 1 0 0 1 아이디어 이진탐색 알고리즘 이진 탐색 STL를 사용해 구현시간을 줄이자 소스코드 //소스코드 #include using namespace std; int N, M; vector Narr, Marr; int main() { int temp; cin >> N; for (int i = 0; i > temp; Narr.push_back(tem..

백준 20291번 - 파일정리

문제 친구로부터 노트북을 중고로 산 스브러스는 노트북을 켜자마자 경악할 수밖에 없었다. 바탕화면에 온갖 파일들이 정리도 안 된 채 가득했기 때문이다. 그리고 화면의 구석에서 친구의 메시지를 확인할 수 있었다. 바탕화면의 파일들에는 값진 보물에 대한 정보가 들어 있어. 하나라도 지우게 된다면 보물은 물론이고 다시는 노트북을 쓸 수 없게 될 거야. 파일들을 잘 분석해서 보물의 주인공이 될 수 있길 바랄게. 힌트는 “확장자”야. 화가 났던 스브러스는 보물 이야기에 금세 화가 풀렸고 보물의 정보를 알아내려고 애썼다. 하지만 파일이 너무 많은 탓에 이내 포기했고 보물의 절반을 보상으로 파일의 정리를 요청해왔다. 스브러스의 요청은 다음과 같다. 파일을 확장자 별로 정리해서 몇 개씩 있는지 알려줘 보기 편하게 확장자..

백준 6550번 - 부분 문자열

문제 2개의 문자열 s와 t가 주어졌을 때 s가 t의 부분 문자열인지 판단하는 프로그램을 작성하라. 부분 문자열을 가지고 있는지 판단하는 방법은 t에서 몇 개의 문자를 제거하고 이를 순서를 바꾸지 않고 합쳤을 경우 s가 되는 경우를 이야기 한다. 예시 입력 sequence subsequence person compression VERDI vivaVittorioEmanueleReDiItalia caseDoesMatter CaseDoesMatter 예시 출력 Yes No Yes No 아이디어 주어진 전체 입력에서 검색어의 문자열 순서대로 검색이 된다면 Yes 아니면 No 알고리즘 검색할 문자의 문자 순서대로 전체 문자열에서 매칭이 되는대로 idx를 1씩올린다. 모든 검색이 끝난후 idx의 수가 검색할 문자열..

백준 1260번 - DFS와 BFS

문제 그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상 방문할 수 있는 점이 없는 경우 종료한다. 정점 번호는 1번부터 N번까지이다. 예시 입력 5 5 3 5 4 5 2 1 2 3 4 3 1 예시 출력 3 1 2 5 4 3 1 4 2 5 아이디어 대놓고 DFS / BFS 알고리즘 DFS / BFS 소스코드 #include #define ALL 1010 using namespace std; bool visitedDFS[ALL]; vector DFSNode[ALL]; bool visitedBFS[ALL]; vector BFSNode[ALL]; int N, M, V; void ..