목록분류 전체보기 (385)
만족
최근 가상화폐에 대한 관심이 급속도로 높아지면서 많은 말들이 나오고 있다. 게다가 정부에서 가상화폐에 대한 강도높은 직접적 규제를 암시하면서, 이에 대한 찬반론이 심화되고 있다. 우선 가상화폐에 대한 설명을 잠깐 하자면, 가상화폐의 핵심 기술은 블록체인(Block Chain)이라는 기술이다. 가상화폐 사용자들이 일정 시간마다 모여서 거래내역을 기록하는 일종의 '장부(Block)'를 함께 기록하여이 블록들을 Chain처럼 엮어서 거래 내역을 조작하지 못하게 하는 기술이 블록체인이다. 가상화폐 소유자들이 각각의 BlockChain을 가지고 있기 때문에, 한 사용자가 악의적으로 Block을 수정하더라도나머지 사람들의 BlockChain은 바뀌지 않을 것이라서, 과반의 BlockChain이 "진짜 장부"로써의 ..
기본적으로 존재하는 뷰 외에도 사용자가 직접 View Class를 상속받아서 개발자 임의로 View를 만들어 사용할 수 있다. package com.example.windows7.myapplication; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.DashPathEffect; import android.graphics.Paint; import android.view.MotionEvent; import android.view.View; import android.widget.Toast; /** * Created by WINDOWS7 on ..
이분 탐색(Binary Search) 정렬되어 있는(이분 탐색의 주요 조건) 배열에서 데이터를 찾으려 시도할 때, 순차탐색처럼 처음부터 끝까지 하나씩 모든 데이터를 체크하여 값을 찾는 것이 아니라 탐색 범위를 절반씩 줄여가며 찾아가는 Search 방법이다. 작동예시 1 2 3 4 5 6라는 값에서 6을 찾고자 한다면 배열의 중간에 위치한 3이라는 값과 6을 비교한다. 6은 3보다 크므로, 이제 3의 왼쪽에 위치하는 값들은 탐색할 필요가 없으므로 (어차피 3 왼쪽에 있는 수들은 3보다 작기 때문이다) 3의 오른쪽에 있는 값들을 대상으로 탐색을 다시 시도한다. 이제 4 5 6이 남았으므로, 다시 중간값인 5와 찾고자 하는 대상인 6를 비교한다. 6은 5보다 크므로, 5의 오른쪽에 있는 값들을 대상으로만 탐색..
퀵 정렬 Merge Sort와 비슷하게 Divide and Conquer기법을 사용하고 Recursive Function을 이용한다. 매 재귀마다, Quick Sort는 Pivot이라는 정렬의 기준이 될 기준을 선정한다. 효율적인 Pivot을 선정하는 방법은 다음에 설명하기로 하고, 우선 Pivot을 현재 배열의 마지막 데이터로 하기로 하자. 그 Pivot을 기준으로 Pivot보다 작은 데이터들은 Pivot의 왼쪽으로, 큰 데이터들은 Pivot의 오른쪽으로 옮긴다. 그러면, Pivot은 제 위치를 찾게 되고(정렬이 끝난 뒤의 위치에 존재한다) 정렬되지 않은 배열은 Pivot의 왼쪽과 오른쪽이다. (2개의 정렬되지 않은 부분배열로 나누어진다.) 이제 정렬되지 않은 부분배열에 대해서 Quick Sort를 반..
병합 정렬 n개의 정렬되지 않은 데이터들이 들어있는 배열에서1번째부터 n/2번째까지, n/2+1번째부터 n번째까지의 데이터를 2개의 배열로 나누고 이 나누어진 배열을 다시 1번째부터 (n/2)/2번째까지, (n/2)/2+1번째부터 n/2번째까지의 2개의 배열과(n/2)+1번째부터 (n/2)+1 + (n/2)/2번째까지, (n/2)/2+1 + (n/2)/2+1번째부터 n번째까지 2개의 배열로 나눈다. 이러한 과정을 계속 반복하여각각의 array의 길이가 1이하가 될 때 까지 n개의 데이터가 들어있는 1개의 배열을 k개의 부분배열로 나눈다. 그리고 잘게 쪼개어진 배열들을 2쌍씩 묶어서 정렬한다. 쉽게 말해서, 큰 문제를 여러 개의 작은 문제들로 쪼개어 처리하는 Divide and Conquer기법을 사용한다..
n개의 데이터가 있는 배열이 있다고 하자. 2번째 데이터부터 n번째 데이터까지 하나씩 데이터를 선정하여 반복하는데 선정된 데이터의 번쨰(index)가 k번째 데이터라면 k-1번째 데이터부터 1번째 데이터까지 k번째 데이터와 비교하면서, 만약 비교당하는 ?번째 숫자가 k번째 데이터보다 크다면 ?번째 데이터를 오른쪽으로 한 칸씩 옮긴다. 그리고 ?번째에 원래의 k번째에 있던 데이터를 삽입한다. 이 과정이 끝나면 k+1번째를 시작하면서 같은 과정을 n번째 데이터까지 반복한다. Java Code public static void insertionSort(int[] array){ for(int i=1; i=0 && array[j]> target){ array[j+1]= array[j]; j--; } array[j..
선택 정렬 오름차순 정렬을 한다고 하면, n개의 데이터가 있는 배열에서 첫 번째 데이터를 선택하고, 두 번째 부터 n번째 배열을 첫 번째 데이터와 비교하면서 가장 작은 값의 데이터를 찾는다. 찾았다면, 그 데이터와 첫 번째 데이터의 위치를 서로 바꾼다. 이 과정을 첫 번째 데이터부터 n-1번째 데이터까지 반복한다. [Java Code] public class EEE { public static void main(String args[]){ int array[]= {1,3,4,6,2,8}; selectionSort(array); for(int i=0; i arr[k]) { minIndex = k; } } if (minIndex !== l) { const temp = arr[minIndex]; arr[min..
Session은 Client와 Server가 관계를 유지하는 방법으로써 사용된다. Client가 Server에 request를 보내면 Server는 Client는 고유한 ID를 가진 Session 객체를 만든다. Session은 쿠키와는 다르게 Client측에 데이터를 저장하지 않고 Server에 저장하기 때문에 쿠키보다 보안상 안전하다. JSP에서는 Session객체를 session변수를 이용해 접근할 수 있다. [Session에 Data Set] session.setAttribute("name1", "value1"); session.setAttribute("name2", "value2"); 처럼 저장한다. setAttribute의 첫 매개변수는 String type으로 된 해당 data의 key값이다..