오늘의 기록
백준 2110 - 공유기 설치
www.acmicpc.net/problem/2110 2110번: 공유기 설치 첫째 줄에 집의 개수 N (2 ≤ N ≤ 200,000)과 공유기의 개수 C (2 ≤ C ≤ N)이 하나 이상의 빈 칸을 사이에 두고 주어진다. 둘째 줄부터 N개의 줄에는 집의 좌표를 나타내는 xi (0 ≤ xi ≤ 1,000,000,000)가 www.acmicpc.net 문제 도현이의 집 N개가 수직선 위에 있다. 각각의 집의 좌표는 x1, ..., xN이고, 집 여러개가 같은 좌표를 가지는 일은 없다. 도현이는 언제 어디서나 와이파이를 즐기기 위해서 집에 공유기 C개를 설치하려고 한다. 최대한 많은 곳에서 와이파이를 사용하려고 하기 때문에, 한 집에는 공유기를 하나만 설치할 수 있고, 가장 인접한 두 공유기 사이의 거리를 가..
[JPA] 엔티티 매핑
자바 ORM 표준 JPA 프로그래밍 - 기본편 스프링 핵심 원리 - 기본편 - 인프런 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다. 초급 프레임워크 및 라이브러리 웹 개발 서버 개발 Back-End Spring 객체지향 온 www.inflearn.com 강의를 들으며 생각 정리 + "자바 ORM 표준 JPA 프로그래밍" 책 참고 JPA에서 가장 중요한 두 가지는 다음과 같다. 객체와 관계형 데이터베이스 매핑하기 영속성 컨텍스트 이 장에서는 엔티티와 테이블을 매핑하는 방법에 대해 알아본다. 객체와 테이블 매핑 @Entity @Entity가 붙은 클래스는 JPA가 관리하고 이를 엔티티라 한다. 즉, JPA를 사용해 테이블과 매핑할 객체는 @En..
이진 탐색
이진 탐색은 탐색 범위를 반으로 좁혀가며 빠르게 탐색하는 알고리즘이다. 이진 탐색 : 반으로 쪼개면서 탐색하기 이진 탐색(Binary Search)은 배열 내부의 데이터가 정렬되어 있어야만 사용할 수 있는 알고리즘이다. 이진 탐색은 위치를 나타내는 변수 3개를 사용하는데 탐색하고자 하는 범위의 시작점, 끝점 그리고 중간점이다. 찾으려는 데이터와 중간점 위치에 있는 데이터를 반복적으로 비교해서 원하는 데이터를 찾는게 이진 탐색 과정이다. 이진 탐색을 구현하는 방법에는 2가지가 있다. 재귀 함수 반복문 이진 탐색 - 재귀 함수 # 이진 탐색 소스코드 구현 (재귀 함수) def binary_search(array, target, start, end): if start > end: return None mid ..
백준 1715 - 카드 정렬하기
www.acmicpc.net/problem/1715 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net 문제 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장의 숫자 카드 묶음을 합치려면 50번의 비교가 필요하다. 매우 많은 숫자 카드 묶음이 책상 위에 놓여 있다. 이들을 두 묶음씩 골라 서로 합쳐나간다면, 고르는 순서에 따라서 비교 횟수가 매우..
![[JPA] 영속성 관리 - 내부 동작 방식](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcbAPE1%2FbtqT90tgu1t%2F5A4EUimK1OYStLzDviCCE0%2Fimg.png)
[JPA] 영속성 관리 - 내부 동작 방식
자바 ORM 표준 JPA 프로그래밍 - 기본편 스프링 핵심 원리 - 기본편 - 인프런 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다. 초급 프레임워크 및 라이브러리 웹 개발 서버 개발 Back-End Spring 객체지향 온 www.inflearn.com 강의를 들으며 생각 정리 + "자바 ORM 표준 JPA 프로그래밍" 책 참고 JPA에서 가장 중요한 두 가지는 다음과 같다. 객체와 관계형 데이터베이스 매핑하기 영속성 컨텍스트 이 장에서는 매핑한 엔티티를 엔티티 매니저를 통해 어떻게 사용하는지 영속성 컨텍스트와 관련하여 알아보자. 영속성 컨텍스트 JPA를 이해하는 데 가장 중요한 용어는 영속성 컨텍스트(persistence context)다..
![[JPA] JPA 시작하기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbrayzH%2FbtqUhz14Fa6%2FV7YprsXVZsZ1QzBZjyEve1%2Fimg.png)
[JPA] JPA 시작하기
자바 ORM 표준 JPA 프로그래밍 - 기본편 스프링 핵심 원리 - 기본편 - 인프런 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다. 초급 프레임워크 및 라이브러리 웹 개발 서버 개발 Back-End Spring 객체지향 온 www.inflearn.com 강의를 들으며 생각 정리 + "자바 ORM 표준 JPA 프로그래밍" 책 참고 JPA의 이론적인 부분도 중요하지만, 무엇보다 실제 동작하는 코드를 간단히 작성하여 JPA를 이해해보자. Hello JPA - 프로젝트 생성 설정 IntelliJ IDEA 2020.3.1 x64(Ultimate), JAVA 8 Maven project(라이브러리 관리 기능과 빌드 기능 제공) h2 데이터베이스 1.4..
![[JPA] JPA 소개](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdhKMwr%2FbtqT8HGWxsu%2FKkq98g2eLGXO8orCG2FKQK%2Fimg.png)
[JPA] JPA 소개
자바 ORM 표준 JPA 프로그래밍 - 기본편 스프링 핵심 원리 - 기본편 - 인프런 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다. 초급 프레임워크 및 라이브러리 웹 개발 서버 개발 Back-End Spring 객체지향 온 www.inflearn.com 강의를 들으며 생각 정리 + "자바 ORM 표준 JPA 프로그래밍" 책 참고 과거에는 객체를 DB에 저장할 때 Jdbc를 사용해 sql을 하나하나 전부 작성했다. 그러나 JPA를 사용하면 JPA가 직접 적절한 sql을 생성한다. 이는 개발 속도와 유지보수 측면에서 확연히 차이가 난다. 이토록 편리한 JPA지만 JPA를 바로 실무에 적용하려면 많은 공부가 필요하다. 객체와 테이블을 설계하고 이..
![백준 18310 - 안테나](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FblkOdt%2FbtqT8IZWeDV%2FvqTqPbXnYwqovinnLfeJpK%2Fimg.jpg)
백준 18310 - 안테나
www.acmicpc.net/problem/18310 18310번: 안테나 첫째 줄에 집의 수 N이 자연수로 주어진다. (1≤N≤200,000) 둘째 줄에 N채의 집에 위치가 공백을 기준으로 구분되어 1이상 100,000이하의 자연수로 주어진다. www.acmicpc.net 문제 일직선 상의 마을에 여러 채의 집이 위치해 있다. 이중에서 특정 위치의 집에 특별히 한 개의 안테나를 설치하기로 결정했다. 효율성을 위해 안테나로부터 모든 집까지의 거리의 총 합이 최소가 되도록 설치하려고 한다. 이 때 안테나는 집이 위치한 곳에만 설치할 수 있고, 논리적으로 동일한 위치에 여러 개의 집이 존재하는 것이 가능하다. 집들의 위치 값이 주어질 때, 안테나를 설치할 위치를 선택하는 프로그램을 작성하시오. 예를 들어 N..