본문 바로가기

전체 글107

[DP] 백준 11058 : 크리보드 - 파이썬 Python https://www.acmicpc.net/problem/11058 11058번: 크리보드 N = 3인 경우에 A, A, A를 눌러 A 3개를 출력할 수 있다. N = 7인 경우에는 A, A, A, Ctrl-A, Ctrl-C, Ctrl-V, Ctrl-V를 눌러 9개를 출력할 수 있다. N = 11인 경우에는 A, A, A, Ctrl-A, Ctrl-C, Ctrl-V, Ctrl-V, Ctrl-A, Ctrl-C, Ctrl www.acmicpc.net 생각하기 dp[N]을 N번 키보드를 눌렀을 때, 화면에 출력할 수 있는 A의 최대 개수라고 한다 먼저 각 버튼의 종류를 살펴보자면 A를 추가 출력하기 위해 한번 누르면 된다 ctrl + A, ctrl + C는 출력을 위한 것이 아니라 ctrl + V의 선행 조건이.. 2022. 3. 16.
[알고리즘 개념] 최단경로 알고리즘 - 다익스트라, 플로이드 워셜, 벨만 포드 다익스트라 알고리즘 특정 노드에서 다른 노드(One To Any)로 가는 각각의 최단 경로 구하기 모든 vertex 사이의 edge의 cost는 음수가 아니어야 한다 -> 그렇기 때문에 실제 길 찾기 알고리즘으로 쓰인다 "가장 비용이 적은 vertex를 선택하여 경로 삼는 방식 -> 가장 작은 비용이 적은거를 기반으로 다음 노드를 선택하면 그 다음 노드도 결국 비용이 작은 것이다!!! " 따라서 알고리즘 분류를 한다면 greedy 알고리즘 에 속한다 준비 사항 최단 거리 배열 - 각 idx는 vertex를 가리키고 출발점에서 해당 vertex까지의 최단 거리 / 각 vertex에 대한 현재까지의 최단 거리 visited 배열 - 방문했는지 체크 과정 최단 거리 배열을 1e9 로 초기화 최단 거리 배열의 .. 2022. 3. 14.
[JPA] OSIV (Open Session In View)를 사용하여 JPA 성능 최적화 JPA에서의 Entity manager == Hibernate에서의 Session 즉, 사실상 JPA에서는 Open Entity Manager In View라고 생각하면 된다 JPA가 언제 DB Connection을 얻는가? DB Transaction을 시작할 때 JPA persistence context가 connection 가져온다 JPA가 언제 DB Connection을 돌려주는가? open-session-in-view가 켜져있는 경우 Service @Transactional 걸린 메소드를 벗어나도, client에게 값이 반환될 때까지 돌려주지 않는다 view template의 경우 html과 data 모두 랜더링 후 API의 경우 json으로 값이 client에게 tansfer된 후 지연 로딩 때.. 2022. 3. 11.
[JPA] Entity가 아닌 DTO로 DB에서 data 가져오기 n:1 관계에 있는 entity의 요소 DTO로 가져오기 JPQL 일반 join을 통해 DTO 객체를 생성해주면서 가져온다 order Repository public List findAllByDto(){ List em.createQuery("select new app.repository.order.dto.OrderDto(o.id, o.order_date, o.status, u.name, u.email)" + " from Order o" + " join o.user u", OrderDto.class).getResultList(); } 처음에 왜 fetch join을 쓰지 않고도 DTO로 가져올 때는 지연로딩 없이 가져올 수 있을까? 에 대해 생각했었는데 JPQL 안에 new 생성자를 통해 하나씩 값을 찍어.. 2022. 3. 10.