본문 바로가기

전체 글547

기계학습(Machine Learning) 시간이 지남에 따라 세상은 사람조차 어떻게 작동되는지 아직 정확히 모르는 영역을 구현하는 프로그램을 요구하기 시작했습니다. 대표적으로 음성인식을 들 수 있습니다. 애플의 시리 같은 프로그램을 만든다고 생각해봅니다. 일단 사람이 어떤 문장을 말했는지 소리 -> 알파벳으로 알아들을 수 있어야 하며, 알파벳으로 이루어진 그 문장이 어떠한 의미를 갖는지 해석 할 수 있어야 합니다. 전체적인 데이터를 보고 그것이 의미하는 정보들을 명확히 짚어낼 줄 알아야 합니다. 기계학습. 이름에서 알 수 있듯이 기계학습은 기계, 즉 컴퓨터를 인간처럼 학습시켜 스스로 규칙을 형성 할 수 있지 않을까하는 시도에서 비롯되었습니다. 주로 통계적인 접근 방법을 사용하는데, 위의 독감의 예와 반대로 독감이 걸린 사람은 대부분 열이 많이 .. 2018. 5. 3.
SIMD 병렬 프로그래밍 예제 1 멀티 데이터를 하나의 명령어로 처리하는 것. 시간을 재보니 4배가량의 속도 차이가 남.. #include #include #include const int n = 1000000000;__m128i a, b, r;__declspec(align(16)) short v1[8] = { 1,2,3,4,5,6,7,8 };__declspec(align(16)) short v2[8] = { 8,1,7,2,6,3,5,4 };__declspec(align(16)) short result[8]; int main() {clock_t startTime, endTime;double nProcessExcuteTime;startTime = clock(); /*현재 시각을 구한다.*/// SISDfor (int i = 0; i < n.. 2018. 4. 27.
QuickSort #include #include using namespace std; void Swap(int arr[], int idx1, int idx2) {int temp = arr[idx1];arr[idx1] = arr[idx2];arr[idx2] = temp;} int Partition(int arr[], int left, int right) { int pivot = arr[left];int low = left + 1;int high = right; while (low = arr[low] && low 2018. 4. 25.
선택 정렬 최소값을 찾아서 왼쪽으로 이동시키는데 배열크기만큼 반복하여 정렬하는 방법.선택정렬의 비교회수는 다음과 같습니다. 선택정렬의 연산시간은 다음과 같습니다.선택정렬의 장점은 데이터의 양이 적을 때 아주 좋은 성능을 나타냅니다.데이터의 양이 적을 떄 아주 좋은 성능. 작은 값을 선택하기 위해서 비교는 여러 번 하지만 교환횟수가 적습니다. 선택정렬의 단점. 가장 작은 값과 현재값을 교환하는 방식. 100개 이상의 자료에 대해서는 속도가 떨어져서 적절히 사용되기가 어렵습니다. #include #include void Select_Sort(int parm_data[], int parm_count){int min_data = 0, min_index = 0;int i, j;int comparison_count = 0; .. 2018. 4. 20.
백준 13460 구슬 탈출 2 1. 큐가 먼저 끝나는 경우도 있음.2. 10이되기 전에 끝나는 경우에도 처리를 해주어야 합니다.3. cnt 와 종료조건에 대해서 명확하게 합니다.4. 시간에 관해서 ++ 와 종료조건에 대해서 명확하게 합니다.5. 10번이하이므로 10번까지 가능합니다. 10번 돌렸는데, 정답을 못찾으면 리턴합니다. 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211.. 2018. 4. 14.
백준 12100 2048 1. 아이디어를 명확하게 구현하기.2. 흐름을 말로 설명하고 나서, 코드를 구현하도록 합니다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151.. 2018. 4. 14.
백준 3190 뱀 1. 문제를 꼼꼼히 읽습니다.2. 사용하는 변수와 자료구조를 고려하여 선택합니다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124/*3190 뱀19:45 시작합니다.20:2439분컷설계 과정1. 문제를 꼼꼼하게 읽습니다.2. 설계를 완벽하게 합니다. (예제 3개 돌리기)3. 경우의 수를.. 2018. 4. 14.
백준 13458 시험 감독 풀이 과정1. 총감독관에 대해서 더해주고2. 부감독관에 대해서 더해주면 됩니다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960/*19:37 6분 컷시험 감독 13458설계 과정1. 문제를 꼼꼼하게 읽습니다.2. 설계를 완벽하게 합니다. (예제 3개 돌리기)3. 경우의 수를 나열 합니다.4. 초기화 변수를 확인합니다.5. 가지치기를 합니다.6. 예제와 동일한 변수를 선언하고 사용합니다.풀이 과정.총 감독관의 숫자를 먼저 계산하고,부 감독관의 숫자를 나누기로 계산합니다.*/ #include #include using namespace std; int N, .. 2018. 4. 14.
백준 14499 주사위 굴리기 설계 과정1. 문제를 꼼꼼히 읽습니다.2. 설계를 정확하게 합니다. (예제 3개 돌리기)3. 경우의 수를 나열합니다.4. 초기화 변수를 확인합니다.5. 가지치기를 합니다.6. 예제와 동일하게 변수를 선언하고 사용합니다. 풀이 과정1. 주사위를 굴린다음에,2. 주사위의 바닥면과 맵을 비교해줍니다.3. 주사위의 윗면을 출력합니다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071.. 2018. 4. 14.
백준 14500 테트로미노 설계 과정1. 문제를 정확히 읽습니다.2. 설계를 명확히 합니다. (예제 3개 돌리기)3. 경우의 수를 나열합니다.4. 초기화조건을 확인합니다.5. 가지치기를 합니다.6. 예제와 동일하게 변수를 선언하고 사용합니다. 풀이 과정1. dfs 를 사용할 때, 이어질 수 있도록, 안에서 변수를 선언합니다.2. star 표시 할때 주의할점 있습니다. (아이디어) - dfs 사용시 가지고 다니는 변수와, 돌아왔을 때 그자리에 존재하는 것들을 명확히 합니다.- 특히나 비짓과 관련된 변수는, 그 자리에 그대로 있어야 합니다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859.. 2018. 4. 14.