이전 게시물에서 이어진다. (이전 게시물에서 DB에 추가한 데이터를 예제에 활용)버전 정보 (삽질을 정말 오래했는데 버전 관련 이슈가 많았기 때문에 버전 정보 꼭 확인하기!!!)jdk : 17Spring Boot : 3.0.6Neo4j : 5.6.0상단 2개의 의존성은
가장 앞자리가 바뀔 때마다 아래 자리 수의 경우의 수 만큼 건너 뛰어야 한다.예를 들어 A -> E로 갈때는 A를 가장 앞글자로 두는 모든 단어들을 건너뛰어야 한다. 그래서 4자리의 모든 경우의 수를 계산하고, 몇 칸 넘어가는지를 곱하면 된다.모든 경우의 수는 제곱 연
MySQL/MariaDB의 쿼리 언어가 MySQL인 것과 같이 Cypher은 Neo4j의 쿼리 언어이다.매우 직관적이고 간결하지만, 강력한 쿼리를 제공한다.DELETE를 제외한 모든 명령은 RETURN으로 끝나야 한다.return 값이 없어도 된다.직접 예시를 실행해보
문제링크가장 많은 조회수의 row는 간단한 단일행 서브쿼리로 연산한다.CONCAT 함수를 활용하여 조건에 맞춰 SELECT한다.
문제링크1로 시작하는 누적합 배열과, -1로 시작하는 누적합 배열을 구분하여 풀이를 시작하였다.해당 인덱스 전까지 경우의 수들을 비교하며 최댓값을 탐색하였는데, 줄어드는 이중반복문이라 O(nlogn)의 시간복잡도를 가진다. -> 시간초과O(n) 수준의 시간복잡도를 고민
문제 링크가장 먼저 가장자리에 따라 BFS 탐색을 해야 한다는 생각에서 출발하였다.테두리 정보를 쉽게 입력에 따라 배열에 표시하여 쉽게 얻을 수 있을 것 같다 생각하였다.그런데 특정 점 좌표와 채워진 면적 정보를 2차원 배열로 고민하는 과정에 두 용도를 구분하여 2개의
Caused by: org.neo4j.kernel.lifecycle.LifecycleException: Component 'org.neo4j.dbms.database.DefaultSystemGraphInitializer@79d82f66' was successfully
문제링크스택을 활용한 연산을 할 때 우선순위를 사용하여 더 꺼낼지 말지 판단한다.그래서 이 문제도 그 우선순위에 대하여 완전탐색하면 최대값을 구할 수 있다.정규식으로 연산자와 피연산자를 각각 처리하여 쉽게 파싱하였다.내부 값이 딱히 필요 없기 때문에 속도 향상을 위하여
문제링크끝나는 구간을 오름차순으로 정렬하고, 한 범위에 대해서 최대한 뒤쪽에 요격 하면 이후의 범위에 최대한 들 수 있다.양쪽이 개구간이라는 것이 유의할 점이다.
최근 자바 버전 관련 이슈에 정말 많이 부딪혀서 정리하게 되었다. 보통 개발 전에 Java SE 8, Java SE 11, Java SE 17 중에 선택하는 것 같다. JDK, Java SE 등 이름도 다양해서 시간 순으로 정리하였다. 실제로 개발할 때 사용한 컨텐츠
문제링크항상 세로 성분인지 가로 성분인지 정확하게 인지하는 것이 중요하다. 연산도 세로인지 가로인지 중요하다. 인지만 잘한다면 크게 어렵지 않은 문제이다.판매정보에 각 고유정보를 JOIN 후, 날짜로 분기하여 GROUP BY 하여 SELECT 문에서 적절한 SUM()
문제링크조건에 명시되어 있는 필드를 기준으로 그대로 group by하고, 정렬하면 되는 문제이다.중요한 조건 중에 하나는 한 달에 한 회원이 여러 번 구매할 수도 있기 때문에 중복 제거를 꼭 해줘야한다.그 외에 NULL처리, 출력 이름 설정 등으로 마무리하면 된다.
문제링크enemy의 길이가 짧지만은 않아서 모든 경우의 수를 따지기에는 부담이 따를 것이라고 예상했다.사고의 흐름은 지금까지의 뺀 값들 중에 가장 큰 것을 롤백한다는 상상이 먼저 떠올랐다.그래서 거쳐온 모든 값을 저장해놓고, 그 중에 최대값을 다시 복구하는 순서로 구현
문제링크조건의 길이가 100이하로 작은 수이며, 사람이 8명이므로 완전탐색을 떠올렸다.모든 경우의 수를 방문하면서 조건에 부합하는지 확인하면 된다.유의할 점은 두 인덱스의 차가 거리가 아니라, (두 인덱스 차) - 1 이 거리가 된다는 것이다.
문제링크dfs로 전체 부분 집합을 구하였다.숫자지만 문자열로 다루면서 정규식을 적극 활용하였다.else문 없이 코딩하기 연습 중..!!