분류 전체보기 (107) 썸네일형 리스트형 [C++/Algorithm] 투 포인터, 구간 합 이해하기 만약에 문제에서 연속된 데이터 구간을 처리하기를 원한다면 투 포인터 혹은 구간 합을 활용하여 O(n)의 시간 복잡도로 해결할 수 있습니다. 1. 투 포인터 {1, 2, 3, 2, 5} 의 배열이 있고, 연속된 수열의 합이 5인 수열의 개수를 묻는 문제가 있을 수 있습니다. 이러한 문제는 시간에 제한이 없다면 간단하게 for 루프를 중첩시켜 O(n^2)에 해결하는 방법이 있을 수 있습니다. 하지만 인풋 사이즈와 시간 제한으로 인해 O(n^2)의 알고리즘을 사용할 수 없는 경우라면 어떻게 해야 할까요? 그림과 같이 첫 점을 가리키는 두개의 포인터를 선언했다고 가정해 볼게요. 이 상태에서 합이 5 이상이 될 때까지 sum이라는 변수에 값들을 더해주며 End pointer를 우측으로 이동하여 줍니다. 자 Sum.. [Java] static 제어자 이해하기 이번 포스팅에서는 자바의 static 키워드에 대해 이해해보는 시간을 갖도록 하겠습니다. static 키워드는 '클래스의' 혹은 '공통의'라는 의미를 내포하고 있습니다. 가령 class Cards { static int width = 5; static int height = 4; String kind; int numberOfCard; public Cards(String k, int n) { this.kind = k; this.numberOfCard = n; } } 다음과 같은 class가 있다고 해보겠습니다. 저희는 Card Class를 통해 여러 가지의 Card 인스턴스를 만들 수 있습니다. 가령 클로버 4의 카드, 스페이드 A의 카드, 하트 3의 카드 등등 문양별로, 숫자별로 카드를 만들 수 있습니다.. [BackJoon4375] 1 안녕하세요. 이번 포스팅에서는 BackJoon 4375번 문제인 1에 대한 해설을 진행해 보겠습니다. 문제는 다음과 같이 이루어져 있습니다. 우선 n이 2와 5로 나누어 떨어지지 않는다고 명시되어있습니다. 즉 주어지는 n은 10으로도 나누어 떨어지지 않습니다. 그러면 저희는 1부터 1 , 11, 111, 1111,... 11111111 등등 1로 이루어진 수를 계속 테스트하며 n과 나누어 볼 수 있습니다. unsigned long long m = 1; ... m = m * 10 + 1; 위와 같이 10을 곱하고 1을 더해주는 과정을 계속 진행해주면 1로만 이루어진 수를 작은 수부터 차례로 구해나갈 수 있습니다. 하지만 문제가 뭐냐면, 위 방식으로만 코드를 작성하게 되면 시간 초과가 나오게 됩니다. 그 이.. [SpringBoot] 블로그 프로젝트 #3 AccountController, Create, Read 코드 작성하기 안녕하세요. 이번 포스팅은 저번 포스팅에 이어 본격적으로 Account Controller에 대해 설계를 시작해보도록 하겠습니다. 기본적으로 Rest API 설계를 다음의 원칙으로 진행하겠습니다. 1. Controller는 url 매핑 이외의 비즈니스 로직에 대해 알면 안 된다. 2. 모든 비즈니스 로직은 Service에서 처리한다. 3. Service에서 Repository와 연결되는 코드는 모두 private접근자를 사용하여 외부에서 접근이 불가능하게 설계한다. 4. RequestDto와 ResponseDto를 설계하여 Entity를 전달받거나 Entity를 반환하지 않는다. 이 정도의 큰 틀을 잡고 시작하겠습니다. 우선 User package에 Dto package, UserService, User.. [Spring/JPA] 영속성 컨텍스트 이해하기 안녕하세요. 이번 포스팅에서는 Spring Data JPA의 영속성 컨텍스트에 대해 이해하는 시간을 가져보도록 하겠습니다. 영속성 컨텍스트란? 영속성(persistency)이란 데이터를 영구적으로 저장하는 것을 의미합니다. 따라서 영속성 컨텍스트란 직역하자면 데이터를 영구적으로 저장하는 환경 정도로 해석될 수 있습니다. 기본적으로 JPA는 객체지향 언어인 JAVA와 Database 사이의 패러다임 불일치를 해결하기 위해서 도입된 규약입니다. 해당 내용을 기억하면서 본 포스팅을 이해하시면 좋을 것 같습니다. 만약에 저희가 Spring framework를 사용하여 웹 개발을 진행하고 있다고 가정해보겠습니다. 저희는 database에서 특정 id값을 갖는 데이터를 수정해달라는 요청을 받으면, database에.. [SpringBoot] 블로그 프로젝트 #2 JPA 설정 및 Entity 생성 저번 포스팅에 https://chanho0912.tistory.com/23 [SpringBoot] 블로그 프로젝트 #1 JSP 설정 본 포스팅은 https://chanho0912.tistory.com/19?category=866707 [SpringBoot] 블로그 프로젝트 #0 Github 연동하기 본 포스팅은 https://chanho0912.tistory.com/18 [SpringBoot] SpringBoot와 Mysql 연동 기본.. chanho0912.tistory.com JSP 설정을 마쳤습니다. 이번에는 JPA 기본 설정 및 Entity class를 한번 작성해볼게요! 우선 이번 포스팅에 필요한 JPA dependency를 추가해주겠습니다. build.gradle buildscript{ ext.. [SpringBoot] 블로그 프로젝트 #1 JSP 설정 본 포스팅은 https://chanho0912.tistory.com/19?category=866707 [SpringBoot] 블로그 프로젝트 #0 Github 연동하기 본 포스팅은 https://chanho0912.tistory.com/18 [SpringBoot] SpringBoot와 Mysql 연동 기본적인 세팅을 완료했으면 Mysql연동을 진행해 볼게요. https://chanho0912.tistory.com/4 [Spring/SpringBoot] IntelliJ.. chanho0912.tistory.com 해당 포스팅이 완료되었다고 가정하고 진행하겠습니다. 이번에는 JSP 설정을 진행해보겠습니다. 우선 SpringBoot는 기본적으로 JSP를 권장하지 않습니다. 따라서 사용하시기에 앞서 몇 가지 설.. [C++/Algorithm] 정렬 알고리즘 이해하고 구현하기 (Merge, Quick) #2 안녕하세요. 이번에는 저번 포스팅에 이어 https://chanho0912.tistory.com/21 [C++/Algorithm] 정렬 알고리즘 이해하고 구현하기 (bubble, insertion, selection) #1 안녕하세요. 이번 포스팅에서는 기본적인 정렬 알고리즘인 버블 정렬 선택 정렬 삽입 정렬 이 세 가지에 대해 이해하고 구현해보는 포스팅을 진행해볼 예정입니다. 우선 정렬 알고리즘이 무엇 chanho0912.tistory.com Merge Sort와 Quick Sort에 대해 알아보는 시간을 가져보겠습니다. 기본적으로 위 포스팅에서 진행한 선택, 삽입, 버블 정렬은 WorstCase(최악의 경우) O(n^2)의 성능을 가집니다. 즉 우리가 처리해야 할 데이터의 개수가 n 개라고 가정하면,.. 이전 1 ··· 8 9 10 11 12 13 14 다음