본문 바로가기

분류 전체보기86

[알고리즘] 에라토스테네스 체 1부터 자연수 N까지의 소수를 확인할때 사용하기 용이한 공식이다. 이중반복문을 피하여 소수를 구할 수 있기 때문에 효율성에서 많은 이점이있다. 자연수 N+1의 크기를 가지는 배열을 만들어 2부터 반복문을 실행하여 배열의 데이터가 0(소수)라면 해당 수의 배수를 모두 1로 변경하여 소수에서 제외 시킨다. ex) 자연수 N 까지의 소수의 총 개수를 구한다. public static int solution(int n) { int[] arr = new int[n+1]; int answer = 0; for (int i = 2; i 2022. 5. 12.
[알고리즘] 다양한 정렬 알고리즘 배열을 특정 기준으로 정렬해야 할 때 사용할 수 있는 정렬 알고리즘에 대한 정리 모든 예시는 오름차순 기준으로 작성하였습니다. 삽입정렬 이중 반복문을 사용하여 기준점에서 배열의 앞쪽으로 가며 비교한다. 기준점 데이터와 비교하여 교환대상이면 앞의 인덱스와 데이터와 교환하며 반복문이 진행된다. 기준점의 위치는 기준점보다 큰 수가 없을 때까지 진행한다. public static int[] solution(int n, int[] arr) { for (int i = 0; i = 0; j--) { // 기준점의 한칸뒤에서 부터 시작 if (arr[j] > tmp) arr[j + 1] = arr[j]; 앞의 값이 더 크면 교.. 2022. 4. 28.
[JAVA] String, StringBuffer, StringBuilder의 차이점 해당 주제에 대해선 이미 많은 분들이 정리한 좋은 글이 있지만 성능과 연관이 있고 문자열을 다루는 일은 번번하여 기록을 남깁니다. 자바에서 문자열을 다루는 클래스는 String, StringBuffer, StringBuilder라는 3개의 클래스가 있다. 위의 3가지 클래스는 문자열을 저장하고 관리하는 기능을 제공하며 각각 조금의 차이가 존재합니다. 문자열의 연산이 많지 않다면 무관하나 연산이 많아지면 클래스의 종류에 따라 성능이슈가 발생할 수 있고, 쓰레드환경의 변화에도 이슈가 발생할 수 있습니다. 이렇기에 클래스의 특성을 이해하고 상황에 따라 알맞은 클래스를 사용해야 합니다. String과 StringBuffer, StringBuilder의 차이점 String과 StringBuffer, StringB.. 2022. 4. 19.
[SPRING] 요청 매핑 헨들러 어댑터 HTTP 메시지 컨버터를 사용한 요청, 응답처리에 대해 정리했었는데 이 글은 컨버터를 거치치 않는 파라미터 ex) @ModelAttribute, @RequestParam 등을 어디서 주입을 받으며 다양한 리턴타입은 어디서 유기적으로 처리되는지 또 스프링MVC의 요청, 응답처리의 어느 시점에서 메세지 컨버터가 사용되는 건지 정리하였습니다. 개인적인 학습의 정리글입니다. @RequestMapping을 처리하는 핸들러 어댑터인 RequestMappingHandlerAdapter을 보면 처리과정을 확인할 수 있다. 애노테이션 기반의 컨트롤러는 다양한 파라미터를 사용할 수 있는데 HttpServletRequest, Model, @Requestparam, @ModelAttribute 같은 애노테이션은 물론 @Req.. 2022. 4. 17.