전체 글

은탄이 아닌 레포지토리
https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net [문제] [풀이] 치킨 집 - 가정 집 사이의 거리를 최소로 하는 치킨 집들을 구해서 거리 합을 구하는 문제이다. 주어진 map 상태를 보면 중간에 벽이 없이 거리는 (x2-x1)+(y2-y1) 으로 구하면 되기 때문에 그래프를 탐색 하지 않고 모든 치킨 집과 가정 집 사이의 거리를 다 구해서 최소를 찾는 완전탐색을 하면 된다. 탐색의 크기는 치킨 집 좌표의 갯수를 기준으로 ..
https://www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net [문제] [풀이] 주어진 조건을 만족할 때 까지 반복하여 BFS를 돌려야 하는 문제이다. 주어진 조건의 종결조건 => 더 이상 인구 이동을 하지 않을 때 따라서 BFS를 돌리며 연합 가능한 국가들의 인구를 계속해서 구한 평균치로 새로 설정하고 더 이상 이동할 필요가 없을 경우엔 break를 걸어 빠져 나오면 된다 import java.util.*; import java.io.*; i..
https://www.acmicpc.net/problem/14442 14442번: 벽 부수고 이동하기 2 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 1,000), K(1 ≤ K ≤ 10)이 주어진다. 다음 N개의 줄에 M개의 숫자로 맵이 주어진다. (1, 1)과 (N, M)은 항상 0이라고 가정하자. www.acmicpc.net [문제] [풀이] 기본적으로 좌표 Map 에서 BFS를 시행하면 최단경로로 가기때문에 다익스트라랑 유사한 알고리즘으로 동작한다. 일반적인 BFS로 풀이하되 벽을 부수는 경우가 추가로 생겼기 때문에 이에 대한 check를 나타내야함 visit 방문확인 배열을 3차원으로 하여 크기는 k+1로 둔다. (벽을 안 부쉬는 경우도 있기 때문) 벽을 부술때마다 +1 씩하여 ..
https://www.acmicpc.net/problem/3109 3109번: 빵집 유명한 제빵사 김원웅은 빵집을 운영하고 있다. 원웅이의 빵집은 글로벌 재정 위기를 피해가지 못했고, 결국 심각한 재정 위기에 빠졌다. 원웅이는 지출을 줄이고자 여기저기 지출을 살펴보던 www.acmicpc.net [문제] [풀이] 왼쪽에서 오른쪽으로 파이프를 쭉 연결해야 하는데 , 최대한 많이 연결해야 한다. 그러기위해선 2가지의 조건을 생각해야한다. 1. [오른쪽위 , 오른쪽, 오른쪽아래] 순서대로 연결해야함 => 만약 y좌표가 0번째에서 출발해서 맨 오른쪽 아래에 꽂히면 다른 1~n 번째에서는 절대 연결이 불가능 2. 이 문제는 백트래킹문제가 아니라 그리디 문제이기 때문에 모든 경우를 따지면 안된다 => 종결조건에 다..
·Backend/JPA
엔티티에 대해 ​변경추적 이력을 넣고싶어서 JPA의 Auditing기능을 쓰는 과정에 이상한 점을 찾았다.​ ​@LastModifiedDate만 동작을 안함.. 이게 뭐지..? 하다가 엔티티 하나만 수정해보니 동작은 하는데 문제는 Item들이 전체 세일을 할때 동작을 안함 .. (2~12는 전체할인 기능동작 , 13는 하나만 수정) 아마 전체 할인 기능을 사용할 때 벌크성 쿼리를 날리는 과정에 DB에 바로 때려박아서 변경감지를 못하기 때문에 그런게 아닐까 싶다. 찾아보니 맞는거 같다.. 어쩔수 없이 TimeEntity에 별도의 로직을 추가 한 뒤에 벌크쿼리를 날리기전에 전체 업데이트 한번 한 뒤에 실행하니 수정날짜 바꾸기 동작함 결론 : 벌크성 쿼리는 추적할 생각하지말거나 직접 넣어주는 로직을 짜야함
·Backend/JPA
혼자 스프링 토이프로젝트를 만들면서 JPA를 사용하던도중 엔티티간의 동일성에 대해 궁금증이 생겼다. 우선 , Member 엔티티를 하나 생성을 해서 저장 한 다음 그 ID값으로 find를 실행했을때 출력되는 값은 같음을 확인하였다. 하지만 만약 영속성 컨텍스트를 벗어난다면 ( entityManager를 flush,clear를 시킴 ) 같은 ID같으로 조회해서 가져온 엔티티는 보다시피 불 일치가 나온다. 같은 객체가 아니라는것. 이는 , 같은 엔티티라는 보장을 해 줄때 수정관련 작업에서 변경감지를 쿼리가 나가기전에 1차캐시에서 비교를 먼저 해 주고 만약 변경된 값이 있다면 데이터를 변경시키고 쿼리가 나가지만 영속성을 보장받지 못하면 다른 엔티티이기 때문에 변경감지가 동작하지 않는다. => 같은 ID값으로 ..
·Backend/Spring
Spring 으로 토이프로젝트를 만들던 도중 예전에 해논 코드의 css가 그대로 가져왔더니 적용이 안되는 현상이 일어났다 .. 결론 : integrity 의 값이 현재 사용중인 부트스트랩 버젼과 일치 하지 않으면 Block 시켜버림. https://getbootstrap.com/docs/4.4/getting-started/introduction/ Introduction Get started with Bootstrap, the world’s most popular framework for building responsive, mobile-first sites, with jsDelivr and a template starter page. getbootstrap.com 여기 들어가서 link 태그 부분을 통째..
https://programmers.co.kr/learn/courses/30/lessons/92342 코딩테스트 연습 - 양궁대회 문제 설명 카카오배 양궁대회가 열렸습니다. 라이언은 저번 카카오배 양궁대회 우승자이고 이번 대회에도 결승전까지 올라왔습니다. 결승전 상대는 어피치입니다. 카카오배 양궁대회 운영위원 programmers.co.kr [문제] [풀이] 완전탐색 + 그리디 문제이다. 1. 맞출 수 있는 모든 과녁을 중복을 포함하게 탐색할 것 2. 누군가 득점을하면 나머지 하나는 득점을 하지 못함 3. 가장 낮은 점수를 많이 맞춘 순 으로 리턴할 것 이 세가지만 만족하면서 탐색하여 depth 가 주어진 n 만큼 진행하고 정산한 결과를 리턴해주면 된다. import java.util.*; import ..
김까따
kimkata's Devlog