Java

· JPA
10장_객체지향 쿼리 언어 이 장 중심 내용은 아래와 같다. 객체지향 쿼리 소개 JPQL Criteria QueryDSL Native SQL 객체지향 쿼리 심화 JPQL은 가장 중요한 객체지향 쿼리 언어이다. Criteria, QueryDSL 등은 JPQL을 좀 더 쉽게 사용할 수 있게 해주는 것에 불과하다. 따라서, 개발자는 JPQL에 능숙해야 한다. 객체지향 쿼리 소개 EntityManager.find() 메소드를 이용하면 하나의 엔티티를 조회할 수 있고, 여기서 연관된 정보를 조회하려면 객체 그래프 탐색을 하면된다. 하지만, 이 기능만으로는 부족하다. 그렇다고 해서 처음 조회할 때 모든 엔티티를 조회하는 것도 현실적이지 않다. 결국, 데이터는 데이터베이스에 있으므로 SQL을 사용해서 필요한 정보를 ..
13913번: 숨바꼭질 4 처음에는 Move 클래스 안에 StringBuilder나 StringBuffer를 넣어서 이전의 경로를 복사해서 최종 경로를 찍도록 했는데 시간 초과가 났다. 아무래도 복사 비용과 새 인스턴스 생성하는 비용이 커서 그런 것 같다. 그래서 예전에 봤던 방법을 사용했는데 prev 배열에 직전 경로를 저장하는 방법이다. prev[a] = b 는 a로 가기위해서는 b를 거친다는 의미이다. 이후 아래와 같이 마지막 K부터 시작점 N까지의 경로를 추적해서 출력하면 된다. int index = K; while(index != N){ index = prev[index]; } 방문 처리 위치에 따라 직전 경로가 갱신이 될 수 있기 때문에 방문 처리 위치도 중요하다. static void BFS..
1106번: 호텔 0 - 1 배낭 문제로 생각하고 접근해야 하는 문제이다. 다만 배낭 문제의 경우 배낭 무게가 정해져 있어 무게를 초과한다면 넣을 수 없지만 이 문제의 경우 최소 C명 이상의 고객을 얻을 수 있는 최소 비용이기 때문에 C명을 넘더라도 최소 비용이라면 해당 값을 반환해야 한다. 풀이 과정 dp의 경우 C + 1명이 아닌 C + 101명으로 초기화 해주었는데 이는 하나의 도시에서 홍보를 통해 얻을 수 있는 고객이 최대 100명이기 때문이다. 앞서 말했듯 최소 C명이상의 고객을 얻을 수 있는 최소 비용이기 때문에 넘을 수 있는 최대 고객 수인 100명과 1번 인덱스부터 사용하기 위해 1명을 추가해줬다. 최소 비용을 구하는 문제이기 때문에 dp를 적당한 무한값으로 초기화해주고 0명을 얻기 위해서..
30869번- 빨리 기다리기 백준 아레나 신청해놓고 까먹고 있다가 부랴부랴 기억해서 참가했었다. 한 시간 반정도 남았을 때 도전했는데 처음 봤을 때는 쉽게 생각하고 BFS로 접근했었다. 제출하니까 시간 초과 뜨길래 다익스트라로 방향을 바꿨으나 시간이 없어서 못풀었었다. 그리고 다 풀고 나서 또 조건 제대로 안 읽어서 불가능할 경우 -1을 출력한다는 것을 못봤다. 그리고 나서는 ‘아 혹시 시간 합이 long이라서 그런가?’ 하고 엉뚱한 것만 손보고 있었다. 이것 때문에 한 15분 정도 더 해멨다.. 결국 접근법 자체는 다익스트라가 맞았다. 대신 고려해야할 점이 빨리 기다리기인데 빨리 기다리기를 사용하면 배차간격을 무시하고 바로 탈 수 있다는 점이다. 예시로 바로본다면 ① -> ②로 가는 소요시간은 2시간이..
greatwhite
'Java' 태그의 글 목록