전체 글(101)
-
[정렬] Quick Sort
퀵 정렬이란? 퀵 정렬은 배열 중 적당한 수 (Pivot)을 골라 그 기준으로 그 수보다 작은 원소와 큰 원소로 나누어서 분류하는 것. 퀵 정렬 아이디어 비어있는 배열 || 원소가 1개인 배열 ㅡ 정렬을 할 필요가 없음. 원소가 2개 라면? ㅡ 아주 쉽다. 그냥 두 개의 위치(swap)를 바꾸기만 하면 된다. 원소가 3개 이상이라면? 우선 원소가 3개라고 가정해보자 { 4, 3 , 1 } 여기서 우리가 4(Pivot)를 선택한다고 하자. 1 . 왼쪽 배열에 작은 원소를 나열해보자 { 3 , 1 } + Pivot + 오른 배열에 큰 원소를 나열해보자 { X } 이렇게 Pivot에 의해 큰 원소와 작은 원소로 나뉘는 것을 분할(Partitioning) 이라 한다. 2 . 이제 왼쪽 배열과 오른쪽 배열을 보자..
2020.06.22 -
[Basic] Cache
Cache를 왜 사용하는가? 한번 읽은 데이터를 임시로 저장하고 필요에 따라 전송,갱신,삭제하는 기술 보통은 데이터의 보관장소로 서버의 메모리를 사용하는 경우가 많다 그렇기 때문에 디스크에서 정보를 얻어오는 것보다 훨씬 빠른 입출력 성능을 얻을 수 있지만 서버가 다운되거나 재부팅되는 경우 사라지는 성격의 휘발성을 가진다. 임시적으로 보관하고 빠르게 그 정보에 접근하기 위한 용도로 사용해야 한다. 정보의 성격에 따라 설정으로 영구보관이나 오랜기간 유지가 가능하다. 단 이런 설정들이 꼭 필요하다면 Cache를 적용하는게 맞는지 한 번 타당성을 검토해 보는게 좋겠다. 쉽게 말한 Cache를 쓰는 목적 서버간 불필요한 트래픽을 줄여서 어플리케이션 서버의 부하 감소시킨다 어플리케이션의 빠른 처리성능(조회)을 확보..
2020.06.20 -
[탐색] 파라메트릭 서치 알고리즘
파라메트릭 서치란? 최적화 문제(문제의 상황을 만족하는 특정 변수의 최솟값, 최댓값을 구하는 문제)를 결정 문제로 바꾸어 푸는 것 파라메트릭 서치는 문제를 풀어나가는 과정이 바이너리 서치(이분 탐색)와 매우 비슷하다. 파라메트릭 서치는 의외의 문제들에 적용돼서 최적화 문제들을 조금 더 쉽게 풀 수 있게 해준다. 파라메트릭 서치의 핵심은 결정 문제. 파라메트릭 서치는 해당값이 정답이 될 수 있는 값인지 아닌지를 쉽게 판단할 수 있어야한다. 파라메트릭 서치는 정답이 될 수 있는 값들이 연속적이어야 한다. 출처: https://sarah950716.tistory.com/16 [주니어 개발자의 대나무숲]
2020.06.19 -
[DP] LIS ( Longest Increasing Subsequence)
LIS 란 제시된 수열에서 증가된 부분 수열 중 가장 길이가 긴 것을 말한다. 예를 들어보자. 수열 { 1 , 4 , 5 , 2, 3 , 9 , 20, 11 } 이 있다고 하자. 이 중에서 증가 부분 수열은 { 1, 5 , 9 , 11 } 이 될 수도 있고 { 4 , 5 , 9 , 11 } 이 될 수도 있다. 하지만 우리가 찾는 LIS라 불리는 부분수열은 { 1, 4, 5, 9, 11 } 이 될 것이다. LIS 구현 방법 순서 리스트의 첫 번째 값을 LIS 배열에 넣자. LIS 배열의 마지막 인덱스 값이 리스트의 값과 비교를 한다. 리스트의 값 > LIS.get(마지막인덱스) LIS 배열 ADD ( 리스트의 값 ) 리스트의 값 < LIS.get(마지막인덱스) LIS배열에서 리스트의 값보다 작아지는 최초 ..
2020.06.19 -
[JAVA] Set - TreeSet
TreeSet은 Set Interface를 구현한 컬렉션 중복된 요소를 저장하지 않는다. 저장순서를 유지 않는다. 자체적인 저장방식에 따라 순서가 결정이 된다. TreeSet이란? 이진 검색 트리 ( Binary search tree ) 라는 자료구조의 형태로 데이터를 저장하는 컬렉션 클래스이다. 이진 검색 트리의 성능을 향상시킨 레드-블랙 트리(Red-Black Tree) 로 구현이 되있다. 이진 트리란? 여러 개의 노드가 서로 연결된 구조로, 각 노드에 최대 2개의 노드를 연결 할 수 있는.. 부모 - 자식 관계는 상대적인 것이며 하나의 부모 노드는 최대 두 개의 자식 노드와 연결될 수 있다. 이 상대적인 것은 Comparable을 구현하거나 Comparator를 제공해서 두 노드를 비교할 방법을 알..
2020.06.16 -
[Basic] Filter & Interceptor
Spring MVC 구조를 잘 알려주는 도식도로 Filter와 Interceptor의 실행 위치를 봐보자. Filter Dispatcher Servlet 이전에 실행 [ WAS내의 ApplicationContext에서 등록된 필터가 실행 된다. ] Application Context에 등록 된 필터가 요청 URL Pattern에 따라 실행 Spring Security, CORS Filter 등 구현 방법 package com.example.springstudy.filter; import javax.servlet.*; import javax.servlet.annotation.WebFilter; import java.io.IOException; package com.example.springstudy.fil..
2020.06.14