본문 바로가기

전체 글

(97)
[알고리즘-공부] 비지도학습-알고리즘시간 과제1 비지도 학습에 대해 조사해오고 비지도 학습에서 쓰이는 알고리즘을 파이썬코드로 가져오라시는 교수님의 지령으로 퀘스트를 풀기 시작했다. 파이썬 코드부분은 http://monny.tistory.com/category/Programming/Python 여기서 확인가능합니다~!!
[3학년-경진대회] (JAVA) 학교_ChatBot 프 로 젝 트 명 KBU_ChatBot 개 발 언 어 JAVA DataBase X 개 발 환 경 Tool : Eclipse Neon3 Server : AWS(Lambda, APIgateway) OS : Window 10 라 이 브 러 리 Auto_reply(자동응답) API json-simple-1.1.jar 프로젝트 기간 2017. 09. 30 ~ 2017. 10. 11 프로젝트 종류 팀 프로젝트 개 발 종 류 카카오톡을 이용하여 유용한 한국성서대 정보를 알려주는 자동응답 서비스 팀 원 김** : 연동 이후에 기능 추가 및 보수 이** : AWS서버 환경 구축, 카카오 톡 스펙에 맞는 API작성 후 연동 프로그램 요약 [개발목적] - 한국성서대학교 학생들의 주된 사용 정보나 반복되는 질문들을 카카오톡이..
[알고리즘-공부] 5.동적계획법(2) - 연속행렬곱셈 코드로는 이해가 잘 안간다. 책을 봐도 읽기 싫게 생겼다.. 그냥 문제를 풀면서 한번 생각해 보자 우선 책을 읽고 문제를 접하는게 이해하기 쉬울것 같다. 이 알고리즘은 결합법칙이 핵심인것 같다. 첫번째 문제 A1 (10 x 2), A2 (2 x 20), A3 (20 x 5), A4 (5 x 15) 1. 일단 행렬 (1,1) ,(2,2), (3,3), (4,4)에 모두 0을 집어 넣자 2. 첫번째 사선인 (1,2), (2,3), (3,4)의 행렬값을 채워 나가자 A1A2 = (10 x 2) x (2 x 20) = (10 x 20), A1A2의 값 : 10 x 2 x 20 = 400 A2A3 = (2 x 20) x (20 x 5) = (2 x 5), A2A3의 값 : 2 x 20 x 5 = 200 A3A4 ..
[모바일프로그래밍] 2. C# _ ppt4장 1. 배열 class ex06Arr { static void Main(string[] args) { //배열을 생성 int[] intArr = { 52, 273, 32, 65, 103 }; //배열의 요소를 변경 intArr[0] = 0; Console.WriteLine(intArr[0]); //출력 : 0 Console.WriteLine(intArr[1]); //출력 : 273 Console.WriteLine(intArr[2]); //출력 : 32 } } 2. 반복문과 배열의 길이 class ex07Len { static void Main(string[] args) { //변수를 선언 int i = 0; int[] intArray = { 52, 273, 32, 65, 103}; //반복을 수행 whil..
[모바일프로그래밍] 1. C# _ ppt1장~3장 1. 입/출력 : Console.ReadLine(), Console.WriteLine() using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; //기본 생성 부분 namespace Exercise01 //프로젝트 이름 { class ex01 //클래스 이름 { static void Main(string[] args) //메인 메소드 { Console.WriteLine("헬로 월드!"); //출력 Console.Write("입력 : "); String a = Console.ReadLine(); // 입력 Console.WriteLine("출력 : "+a)..
[알고리즘-공부] 3. 분할 정복 알고리즘(2) - 퀵정렬 3.2 퀵정렬(Quick Sort) 퀵정렬은 분할 정복 알고리즘으로 분류되나, 사실 알고리즘이 수행되는 과정을 살펴보면 정복 후 분할하는 알고리즘 이다. 퀵정렬 알고리즘은 문제를 2개의 부분문제로 분할하는데, 각 부분문제의 크기가 일정하지 않은 형태의 분할 정복 알고리즘이다. 퀵정렬은 다음과 같은 과정으로 분할 정복을 이용해 정렬을 수행합니다. (1) 데이터 집합 내에서 임의의 기준요소(pivot)를 선택하고, 기준요소보다 작은 요소들은 순서에 관계없이 무조건 기준요소의 왼편에, 큰 값은 오른편에 위치시킨다. (2) 기준 요소 왼편에는 기준 요소보다 작은 요소들이 모여 있고 오른편에는 큰 요소들이 모여 있겠쥬??이렇게 나눈 집합들을 다시 (1)번에서와 같이 임의의 기준요소를 선택하고 같은 방법으로 데이터..
[알고리즘-공부] 3. 분할 정복 알고리즘(1) - 합병정렬 분할 정복(Divide-and-Conquer) 알고리즘 이란 주어진 문제의 입력을 분할하여 문제를 해결(정복)하는 방식의 알고리즘이다. 여기서 분할된 입력에 대한 문제를 부분문제라고 하고, 부분문제의 해를 부분해라고 한다. 부분문제는 더 이상 분할 할 수 없을 때까지 계속 분할한다. 입력의 크기가 n일때, 총 몇번을 분할하여야 더 이상 분할할 수 없는 크기인 1이 될까? 분할 한 총 횟수 = k로 두고, 1번 분할 후 각각의 입력 크기 = 라고 한다면 입력크기는 씩 분할됨을 알 수 있다. 따라서 이라는 식을 세울 수 있고, 결국 분할 총 횟수 임을 알 수 있다. 분할 정복 알고리즘은 분할, 정복, 결합의 과정을 거친다. 분할 정복 알고리즘에서 가장 중요한 것은 '문제를 나누는 것'이다. 문제를 제대로 나..
[알고리즘] 2. 알고리즘을 배우기 위한 준비 2.1 알고리즘이란? 알고리즘 이란 문제를 해결하는 단계적 절차 또는 방법이다. 알고리즘의 일반적인 특성으로는 -정확성 : 주어진 입력에 대해 올바른 해가 주어져야 함 -수행성 : 각 단계는 컴퓨터에서 수행 가능하여야 함(반드시 컴퓨터로 수행되어야만 하는것은 아니지만 이 책은 컴퓨터로 수행시킬수 있는 것만 다룸) -유한성 : 일정한 시간 내에 종료되어야 함 -효율성 : 효율적일수록 그 가치가 높음(빠른 수행 시간, 크지 않은 메모리 공간) 2.2 최초의 알고리즘 : 유클리드(Euclid)의 최대공약수 찾는 알고리즘 핵심아이디어 : 2개의 자연수의 최대공약수는 큰 수에서 작은 수를 뺀 수와 작은수와의 최대 공약수와 같다는 성질을 이용하여 최대공약수를 찾았다. 단, 최대공약수(a, 0) = a ex) 최대공..