개발 321

분할정복(Divide and Conquer) - 2. 병합정렬

병합정렬은 전체 원소를 하나의 단위로 분할한 후 분할한 원소를 다시 병합하는 정렬방식이다. 병합정렬 작동 순서1. 정렬한 데이터 집합을 반으로 나눈다.2. 나누어진 하위 데이터 집합의 크기가 2이상이면 이 하위 데이터 집합에 대해 1을 반복한다.3. 원래 같은 집합에서 나뉘어져 나온 하위 데이터 집합 둘을 병합하여 하나의 데이터 집합으로 만든다. 단 병합할 때 데이터 집합의 원소는 순서에 맞춰서 정렬한다.4. 데이터 집합이 다시 하나가 될 때까지 3을 반복한다. 5, 1, 6, 4, 8, 3, 7, 9, 2의 데이터를 정렬한다고 할 때 다음의 과정을 거쳐서 정렬을 한다.먼저 알고리즘의 1-2 과정을 반복해 데이터 집합을 나눈다.파란색 블록은 중간의 기준점을 의미 분할을 끝낸 뒤에는 '정복'을 수행, 합칠..

개발/Algorithm 2014.06.25

분할정복(Divide and Conquer) - 1. 개념

분할정복이란?문제를 더 이상 나눌 수 없을 때까지 나누고, 이렇게 나누어진 문제들을 각각 풂으로써 결국 전체 문제의 답을 얻는 알고리즘 분할 정복의 과정 1. 분할(Divide) : 문제가 분할이 가능한 경우, 2개 이상의 하위 문제로 나눕니다. 2. 정복(Conquer) : 하위 문제가 여전히 분할이 가능한 상태라면 하위 집합에 대해 1-을 수행합니다. 그렇지 않다면 하위 문제를 푼다. 3. 결합(Combine) : 2과정에서 정복된 답을 취한다. 분할정복법은 어떤 것에 적용하는가? 1. 문제를 작게 쪼개는 것이 가능한가?(Divide) 2. 쪼개진 문제들을 조합하여 문제의 답을 효율적으로 구할수 있는지(Merge & Conquer)

개발/Algorithm 2014.06.25

1. 웹프로그래밍 기초

1. 웹프로그래밍 기초- 웹 어플리케이션 : 웹 기반 어플리케이션- 웹 브라우저에 서비스를 제공하기 위해 필요로 하는 구성 요소들 구성 요소 역할 주요 제품 웹 서버 - 웹브라우저의 요청을 받아서 결과를 웹브라우저에 전송, 만약 처리가 필요하면 어플리케이션 서버와 프로그램을 직접 호출 - 정적인 HTML, 이미지, CSS,Java Script 제공시 사용 아피치, nginx 등 어플리케이션 서버 게시글 목록, 로그인 처리와 같은 기능을 실행, 그 결과를 웹 서버에 전달 Tomcat, JBoss 데이터베이스 웹 어플리케이션이 필요로 하는 데이터 저장 Oracle, MySQL, MSSQL 웹 브라우저 웹 서버에 서비스 실행 요청, 웹 서버의 처리결과를 보여준다 인터넷, 구글크롬, 파이어 폭스 - 정적인 HT..

개발/Web 2014.03.11

MFC 오목만들기 3_ 마우스 이벤트 받기

바둑판을 터치하면 색깔 별로 바둑알이 그려지는 이벤트를 만들어보자. 1. 우선 턴을 관리할 bool형 변수를 추가하여 턴을 구분하게 한다.나중에 true이면 흰색돌, false이면 흑색돌이 그려지게 한다. 다이얼로그 대화상자에서 우측버튼을 클릭한 뒤, 변수 추가버튼을 누릅니다. 다음 대화상자가 뜨게 되면, 아래의 내용과 같이 입력해 줍니다. 메인 다이얼로그에서 우측버튼을 클릭 후 '클래스마법사'에서 '메시지'탭을 선택한다. 여러가지 메시지가 지정되있는 것을 확인할 수 있다. 이중 마우스 왼쪽 이벤트에 대해 작성할 것이니 'WM_LBUTTONDOWN'을 선택 후 처리기 추가 버튼을 클릭 작성된 OnLButtonDown()함수부분에 다음의 코드를 추가한다. void CMFC_OMOKDlg::OnLButton..

MFC 오목만들기 2_ 오목판 그리기

1. 오목판을 그릴 함수 추가 - 다이얼로그에서 우측버튼 '클래스마법사'실행 -> '메서드'탭에서 메서드 추가 버튼 클릭 함수추가 마법사 창에서 다음과 같이 반환형이 void형이고 매개 변수가 없는 DrawBack()함수를 생성한다. 2. 생성된 함수에 다음의 소스코드를 넣는다//그래픽 작업을 할 윈도우 영역설정 CClientDC dc(this); //Pen으로 테두리, Brush로 면 색을 갈색으로설정 CPen MyPen(PS_SOLID, 0, RGB(206, 103, 0)); dc.SelectObject(&MyPen); CBrush MyBrush(RGB(206, 103, 0)); dc.SelectObject(&MyBrush); //설정한 색으로 사각형 영역 그리기 dc.Rectangle(10, 10,..

MFC 오목만들기 1_ 프로젝트 생성, 메뉴만들기

1. 프로젝트를 새로 생성한 후 MFC응용프로그램 선택, 다이얼로그 기반을 선택 후 완료 선택 2. 다이얼로그에 메뉴띄우기 먼저 프로젝트에서 우측버튼 추가->리소스를 선택한다. 다음과 같은 창이 뜨면 'Menu'를 선택하고 새로만들기 클릭. 원하는 메뉴 목록을 구성시킨다. 저같은 경우에는 File- Open, Save, Exit를 우선적으로 넣고 생성 마지막으로 다이얼로그와 메뉴를 연결해봅시다.! 다이얼로그 속성창에서 'Menu' 란을 방금 만든 메뉴의 이름을 선택하고 실행하면 끝! 3. 이제 만들어놓은 메뉴 버튼들이 기능을 하게 하면 된다. 메뉴가 있는 IDR_MENU1 화면으로 돌아간 뒤 'Exit' 버튼 오른쪽 버튼 클릭 -> 이벤트 처리기 추가 선택 'COMMAND' , '생성한 Dlg'를 선택 ..

WPF ColorAnimation

1. 색을 변경할 브러시 생성, 이름 등록 SolidColorBrush mySolidColorBrush = new SolidColorBrush(Colors.Blue); this.RegisterName("MySolidColorBrush", mySolidColorBrush); 2. 만들어 놓은 Path에 Brush 설정 mainPath.Fill = mySolidColorBrush; 3. 칼라 애니메이션 설정 //칼라애니메이션 설정 ColorAnimation myColorAnimation = new ColorAnimation(); myColorAnimation.From = Colors.Blue; myColorAnimation.To = Colors.Red; myColorAnimation.Duration = ne..

WPF Storyboard Animation_마우스 진입했을 때 애니메이션 설정

//스택패널 생성 후 여백 20 설정 StackPanel myStackPanel = new StackPanel(); myStackPanel.Margin = new Thickness(20); //애니메이션을 설정할 사각형 설정 Rectangle myRectangle = new Rectangle(); myRectangle.Name = "MyRectangle"; myRectangle.Width = 100; myRectangle.Height = 100; // 새로운 NameScope생성 후 등록 NameScope.SetNameScope(this, new NameScope()); this.RegisterName(myRectangle.Name, myRectangle); //파랑색 설정 SolidColorBrush ..

반응형