본문 바로가기

전체 글107

[Sort] 삽입정렬 - Insertion Sort 앞에 있는 array들이 정렬되어있고 현재 위치의 값을 앞 정렬된 array 중, 알맞은 곳에 삽입하는 방법 -> 코드화 하면 삽입보다는 뒤에서 앞으로 하나씩 검사(현재 위치의 값과 비교)해서 SWAP해나가는 방식 머릿속에서는 삽입이지만 사실 뒤에서부터 앞방향으로 검사 & SWAP 해서 자리 찾아가는 방식 시간복잡도 For문이 2번 중첩되어 최악의 경우 뒤에서 앞으로 모든 검사를 다하며 찾아가서 선택정렬과 O(n^2)으로 비슷하겠지만 데이터가 정렬이 거의 되어 있는 상태라면 각 idx에 대해서 검사시간이 줄어들어 빠르게 동작한다 import sys input = sys.stdin.readline arr = [4, 2, 6, 1, 9, 23, 45, 21, 28, 19] def insertionSort(a.. 2021. 9. 12.
[Sort] 선택정렬 - Selection Sort 무작위로 데이터들이 있을 때, 가장 작은 수를 맨 앞에 있는 것과 바꾸고 나머지 것들에 대해 또 다시 같은 과정을 반복 가장 작은 것은 맨 앞으로! 시간복잡도 for 문을 두번 돌면서 n개의 위치에 대해 제일 작은 것을 찾기 위해 n, n-1, n-2 ... 1번 탐색을 진행한다. n(n-1)/2로 O(n^2)의 시간복잡도를 가진다 import sys input = sys.stdin.readline INF = int(1e9) arr = [4, 2, 6, 1, 9, 23, 45, 21, 28, 19] def selectSort(arr): for i in range(0, len(arr)-1): min_val = INF min_idx = -1 for j in range(i, len(arr)): if min_v.. 2021. 9. 12.
[JPA] JPA 세팅 및 MySQL 8 아마존 RDS 연결하기 by Spring Boot build.gradle 에 JPA / MySQL 의존성 세팅하기 방법은 여러가지가 있겠지만 내가 시도한 방법은 두가지다 > Spring Boot Initializer로 작업 환경 만들 때 추가하기 https://start.spring.io/ 이곳에서 웹을 통해서 스프링 프로젝트 생성이 가능한데 이때, jpa를 추가한다 > Maven Repository에서 가져와 추가하기 https://mvnrepository.com/ 에서 스프링에 필요한 라이브러리들을 가져와 추가할 수 있다. JPA도 여기서 검색하면 나온다. build.gradle 파일에서 mavenCentral()이라고 쓰여있는 부분이 JPA 상세 코드 혹은 패키지가 존재하는 사이트 서버와의 인터페이스 (통로) 역할을 하는 메서드가 아닐까 싶다 re.. 2021. 9. 10.
[JPA] JPA 등장 배경 + ORM에 대한 이야기 JPA 등장 배경 JDBC API로 언제까지 SQL문 짜고 업데이트 사항 발생하면 하나씩 DAO에 가서 수정할래? JAVA에서는 JDBC API를 이용하여 Web Application에서 DB로 부터 data를 추출해서 가져와야 했다. 직접 SQL을 작성한 후 JDBC API를 이용하여 SQL문을 전달하는 방식이다. 아래는 JDBC template을 활용하여 상품 DB와 상품 Service 코드 사이에서 DB를 가져오고 매핑해주는 DAO 계층이 담긴 class의 메서드 중 하나이다. public List getProductHomeTodayClass(){ String query = "SELECT OnlineClass.idx, thumbnail, title FROM OnlineClass\n" + "WHERE.. 2021. 9. 10.