분류 전체보기(324)
-
[Algorithm Week_3] QuickSort
QuickSort Unstable Sort Recursion으로 생각? 1. 배열의 원소중 "pivot" 고르기 2. pivot을 기준으로 1) pivot보다 작은 값들은 pivot의 왼쪽으로, 2) pivot보다 큰 값들은 pivot의 오른쪽으로 분류시킨다 :: Partition 3. pivot을 기준으로 분류된 두 subarray를 각각 정렬한다 "By Recursion" recurse Left recurse Right ※ MergeSort와 QuickSort의 차이점 MergeSort - 일단 Recursion을 던져놓고, "Merge"를 통해서 최종적으로 정렬 더 상세히 살펴보면, MergeSort는 array의 요소가 1개가 남을때까지 계속해서 subarray들을 반으로 나누고, 다 나누었으면 ..
2022.03.16 -
[Algorithm Week_3] MergeSort
MergeSort Stable Sort Recursion으로 생각? 1. 배열을 2등분 2. 2등분 한 각 subarray들을 정렬 "By Recursion" 3. 정렬된 2개의 subarray들을 "Merge" 최종 "Merge" 방식 i는 왼쪽 subarray 전용 포인터이고, j는 오른쪽 subarray 전용 포인터이다 - 여기서 i, j가 가리키는 각 값들을 비교해서 최종 정렬된 배열에 넣어준다 오름차순 배열이 default이므로, 더 작은 값을 넣어준다 1) i : 4 & j : 1 4 > 1 이므로, j가 가리키는 값인 1을 배열에 넣어주고 j는 증가시켜준다 2) i : 4 & j : 2 4 > 2 이므로, j가 가리키는 값인 2를 배열에 넣어주고 j는 증가시켜준다 3) i : 4 & j : ..
2022.03.16 -
[Algorithm Week_3] Recursion
Recursion - 자기 자신을 호출하는 구조? - 알고리즘 설계 & 문제해결의 필수 Recursion의 예 1) Factorial 2) 자료구조 (LinkedList & Binary Tree) LinkedList Null은 List이다 어떤 A가 List이면, A앞에 노드를 연결한 전체도 List이다 Binary Tree 공집합은 Binary Tree이다 T1, T2가 Binary Tree이면,.... Reduction? : 줄이기 & 쪼개기 - 알고리즘을 설계할 때 가장 많이 쓰이는 기술 중 하나 'Reducing one problem "X" to another problem "Y"' - 우리가 풀고 싶은 문제는 X이다 - 이 X를 풀 때 Y의 알고리즘을 호출? - 우리는 Y가 어떤 알고리즘에 의해..
2022.03.16 -
[OS Week_2] 3/15 정리
MS-DOS - MS-DOS의 경우에 메인 메모리에 프로그램이 only 하나만 올라가게 된다 이 경우, CPU의 효율이 굉장히 떨어진다 Why?? 프로세스가 I/O 요청을 받으면 interrupt가 발생하게 되고, 그에 따른 ISR을 수행하기 때문에 CPU는 idle status가 된다 - I/O 작업이 많아질수록 CPU의 idle time 역시 증가하게 된다 >> 이러한 문제 해결 : Multiprogramming Multiprogramming "CPU를 바쁘게 만들어라" - 메인 메모리에 여러개의 프로그램을 올려서 I/O Interrupt가 발생하게 되면 즉시 "context switching"을 통해서 다른 프로세스에게 CPU를 할당해준다 이렇게 구현되면 CPU는 idle status에 빠지지 않고..
2022.03.15 -
[AI] Agent
Agent (Rational Agent) 1. 자신이 놓인 환경에 대해서 "센서"를 통해서 환경에 대한 상태를 "추정" (Sensor Value 획득) 환경이 현재 어떤 상태인가 그 환경 속에서 나는 어떤 상태인가 2. Effectors를 통해서 해당 환경속에서 에이전트는 행동을 수행한다 어떤 행동을 수행할 것인지에 대해서 "4가지 에이전트" 유형이 존재한다 Simple-Reflex Model-Based Reflex Goal-Based Utility-Based >> 에어전트는 1, 2를 환경 내에서 계속 반복한다 자율적인 존재 : "Atonomous Entity" 에이전트는 행동을 "자신이 스스로 결정"해야 한다 자신이 놓여진 환경에서 자신이 수행할 수 있는 행동은 무엇이 있고 그 중에 최적의 행동은 무..
2022.03.14 -
[AI] 기호 처리? 신호 처리?
인공지능? (Artificial Intelligence) - 인간이 보유한 지능을 인공적으로 구현한 것 인공지능 ⊃ 머신러닝 ⊃ 인공신경망 ⊃ 딥러닝 AI 판별 기준 (Like Human & Rationality) 1) "Like Human" "인간처럼 생각할 수 있다" - 두뇌의 활동 - Cognitive science / Neuroscience "인간처럼 행동할 수 있다" - 자연어 대화 / 자연스러운 인식&행동 - Turing Test ※ Turing Test - 거의 인간과 동일한 지능적 행동을 보여주는 기계의 능력에 대한 테스트 - 판단자(C)는 반대편에 존재하는 객체가 기계인지 인간인지 판단해야 한다 Turing Test는 "Thinking Humanly"가 아닌 "Acting Humanly"..
2022.03.14 -
[JSP] 스크립트 요소
스크립트 요소 스크립트릿 (Scriptlet) 표현식 (Expression) 선언부 (Declaration) - JSP 프로그래밍에서 어떠한 로직을 수행할 때 필요 - 프로그램이 수행해야 하는 기능을 구현할 수 있다 1) 스크립트릿 (Scriptlet) - JSP 페이지에서 자바 코드를 실행할 때 사용하는 코드 블록 > 스크립트릿 코드 블록은 여러개를 작성할 수 있다
2022.03.13 -
[JSP] page 디렉티브
Page 디렉티브 - JSP 페이지에 대한 설정 정보를 지정할 때 사용 어떤 문서를 생성? 어떤 자바 클래스를 사용? 세션에 참여? 출력 버퍼 존재? .... ----------------------------------------------- 속성 설명 default 값 contentType JSP가 생성할 문서의 MIME 타입 & 캐릭터 인코딩 지정 text/html import JSP 페이지에서 사용할 자바 클래스 지정 session JSP 페이지가 세션을 사용할지 여부 지정 true buffer JSP 페이지의 출력 버퍼 크기 지정 - "none" = 버퍼 사용 X 최소 8kb autoFlush 출력 버퍼 가득차면 버퍼 내의 데이터들 자동으로 출력 스트림에 내보내고 비울지 결정 - "true" :..
2022.03.13 -
[Algorithm] Bubble Sort
Stable Sort 정렬 방식 상당히 간단한 정렬 알고리즘이다. 그냥 인접한 두 수끼리 크기를 비교해서 왼쪽값이 오른쪽값보다 크면 서로 exchange해주면 된다 이렇게 정렬하면 매번 정렬할 때마다 최댓값은 알아서 오른쪽에 순차적으로 정렬된다 43 1 25 9 16 ▶ Round 1 43 1 25 9 16 1 43 25 9 16 1 25 43 9 16 1 25 9 43 16 1 25 9 16 43 ▶ Round 2 1 25 9 16 43 1 25 9 16 43 1 9 25 16 43 1 9 16 25 43 Java Code static void bubble_sort(int [] list, int n){ for(int i = n - 1; i >= 0; i--){ for(int j = 0; j < i; j..
2022.03.12 -
[Algorithm] Insertion Sort
Stable Sort 정렬 방식 - 두번째 값부터 차례대로 해당 값을 넣을 위치를 전체적인 배열의 자리에서 결정해준다 >> 선택한 값의 "앞에 요소들"을 살펴보고 만약 앞에 요소들 중 자신보다 큰 값이 있다?? 그러면 앞에 요소들을 차례대로 오른쪽으로 shift 해준다 9 17 1 2 12 6 ▶ Round 1 (index 1) 인덱스 0 1 2 3 4 5 요소 9 17 1 2 12 6 - "index(1) 17"앞에는 "9"라는 값이 있다 - 9는 17보다 작다 - 따라서, 여기서는 shift 해줄 필요가 없다 ▶ Round 2 (index 2) 인덱스 0 1 2 3 4 5 요소 9 17 1 2 12 6 - insert하려는 기준 값 = "index(2) : 1" - 해당 값 이전의 요소들을 알아봐야 ..
2022.03.12 -
[Algorithm] Selection Sort
Unstable Sort 정렬 방식 - 정렬되지 않은 요소들에 대해서 일단 가장 좌측을 최솟값의 index라고 생각 9 17 1 2 12 6 ▶ Round 1 (index 0) 인덱스 0 1 2 3 4 5 요소 9 17 1 3 12 6 정렬 여부 X X X X X X - 정한 index 다음 요소들로부터 진짜 최솟값 index를 찾아내기 (계속해서 index를 update해준다) 인덱스 0 1 2 3 4 5 요소 9 17 1 3 12 6 정렬 여부 X X X X X X - 진짜 최솟값의 index는 "2"니까 index(2)의 값과 index(0)의 값을 서로 교체 인덱스 0 1 2 3 4 5 요소 1 17 9 3 12 6 정렬 여부 O X X X X X - 이러면 0번째 요소는 정렬 완료 ▶ Round..
2022.03.12 -
[SE] 폭포수 모델
폭포수 모델 (Waterfall Model) - SW 개발 시, 단계적으로 개발하는 방법 - 반드시 앞 단계가 먼저 완료되어야 다음 단계로 넘어갈 수 있다 앞 단계가 완료 : 개발 + 해당 단계에 대한 철저한 검증 - 결과가 user의 의견과 다르거나, 결함이 있을 경우 바로 전 단계로 돌아가는 "Feedback"은 존재한다 - 프로젝트 진행과정에 대한 관리는 용이하지만, 최종적 목표가 개발 후반에 구체화되기 때문에, 문제가 후반에 발견될 가능성이 크다 폭포수 모델 구성 - 각 단계 종료 시, 철저한 검증 후에 다음 단계를 진행 - 전 단계에서 결함 발견 시, 해당 단계에 대한 피드백을 받고, 각 단계별 산출물을 명확하게 정의 - 기술적 위험성이 낮거나, 유사프로젝트 경험이 많은 경우에 사용 1) 계획 ..
2022.03.11