기술 39

[nl2query] BirdSQL dataset으로 nl2query 실습하기

이번에 수강하고있는 데이터베이스 수업에서nl2query 실습과제가 주어졌다 nl2query계에서 가장 유명한 벤치마크 중 하나인BirdSQL을 이용한 nl2query 실습과제였고전반적인 nl2query 과정이나수정 및 추가가 필요한 점들을 논리적으로 적어가는 과제였다그래서 과제를 수행하는 과정들을티스토리에 간단하게 기록해보려한다BirdSQL https://bird-bench.github.io/ BIRD-benchBIRD Mini-Dev A Lite version of developtment dataset, which is designed to facilitate efficient and cost-effective development cycles, especially for testing and refi..

기술/DB 2025.04.09

[neo4j] docker 환경에서 neo4j data dump 하기 + 새로운 neo4j에 dump 파일 풀기

이번에 연구실 서버에 docker 환경에서 띄워놨던neo4j에 있는 data를 옮겨야 할 일이 생겼다그래서 neo4j 내부에서 명령어를 실행해서dump라는 파일을 생성해서 받아올 수 있길래 그렇게 하려고했는데 문제가 발생했다 원래라면 neo4j에서 dump 명령어를 실행하려면neo4j stop -> dump 명령어 실행을 해야하는데docker 환경에서 neo4j를 stop을 하면neo4j가 docker container의 main process라서docker container가 자꾸 죽는 것이었다 docker container가 자꾸 죽으면..neo4j 명령어 실행을 못하잖아 ㅋㅋ 그래서 또 구글링 + gpt를 하다가neo4j 자체에서 cypher로DATABASE STOP;인가를 해주면 된다고 했는데안타..

기술/DB 2025.04.03

[docker] docker로 올린 jupyter notebook에서 sudo 명령어 jovyan 비밀번호 해결

나는 큰 데이터로 작업하는 일이 많아서작업을 할 때 서버에 jupyter를 docker로 올리고그 내부에서 데이터를 다운받거나 코딩 작업을 주로 한다 이번에도 그렇게 작업을 하던 중jupyter 환경에서 sudo 명령어를 사용해야 할 일이 생겼는데sudo 명령어를 terminal에 치니jovyan password를 입력하라고 나왔다 이에 관해 열심히 구글링을 했더니jovyan에 대한 분노 글을 많이 발견했는데.. 간단하게 설명하자면docker로 jupyter를 pull 받아서사용하는 경우는 대부분 jovyan 계정으로 접속해서 사용하게된다 jovyan이 뭐.. jupyter(목성)의 위성이라jupyter를 사용하는 사람들..어쩌구 저쩌구 하던데 그런데 문제는 jupyter notebook을 사용하다보면어..

기술/기타 2025.01.15

[c++] Coin Combinations(동전 조합 알고리즘, 순서 고려 X) with Dynamic Programming

이번엔 dynamic programming을 이용해서동전 조합 알고리즘 문제를해결하는 법을 정리해보려고 한다 동전 조합, 즉 Coin Combinations은우리가 학창시절 수학과목에서 볼 수 있었던확률과 통계 유형의 문제인데각 동전이 주어지고 합계가 주어질 때합계를 만들 수 있는 경우의 수를 구하는 문제이다 이같은 문제는 동전의 순서를 고려하는 경우와동전의 순서를 고려하지 않는 경우로 구분할 수 있는데이번 문제는 동전의 순서를 고려하지 않는 경우였다(조금 더 간단하게 구현이 가능하다) 알고리즘 문제는 다음과 같다   그리고 Input, Output, Constraints는 다음과 같다  이러한 Coin Combinations 문제는대표적인 dynamic programming 문제이다 dynamic pr..

기술/알고리즘 2024.12.16

[c++] BFS/DFS 구현하기 (넓이우선탐색, 깊이우선탐색)

이번에는 알고리즘에서는 기본이 되는BFS(넓이우선탐색)과 DFS(깊이우선탐색)을c++로 구현한 내용을 정리해보려고한다 알고리즘이 .. 원리를 이해해도계속 복습하지 않으면 자꾸 까먹어서기록용 + 공부용으로 남겨두려고한다 BFS와 DFS는많은 알고리즘에서 사용하는기본이 되는 탐색법이기 때문에툭 치면 나올만큼 외우고있으면 좋은 것 같다(머리가 안좋으면 외워야,,)우선 그래프 탐색에서 필요한 Node는아래와 같이 구현했다struct Node { int value; vector children; Node(int val) : value(val) {}}; 자기 자신의 int값인 value와Node 포인터의 vector인 children을요소로 갖고있다  BFS(Breadth First Search)넓..

기술/알고리즘 2024.12.16

[c++] Min Cost to Connect All Points 문제 Prim's Algorithm으로 해결하기

이번 수업시간에서 MST(Minimum Spanning Tree)에 대해 배워관련 알고리즘 문제들을 LeetCode에서 찾아 풀다가MST에서 간단한 문제를 정리해보기로했다  https://think0905.tistory.com/entry/computer-science-Graph-Tree-Minimum-Spanning-TreePrims-Kruskals-Algorithm [computer science] Graph, Tree, Minimum Spanning Tree(Prim's, Kruskal's Algorithm)이 게시글은서울대학교 데이터사이언스대학원조요한 교수님의데이터사이언스 응용을 위한 컴퓨팅 강의를학습을 위해 재구성하였습니다.이번 시간에는 graph와 tree에 대한기본 용어 및 개념 복think0..

기술/알고리즘 2024.12.13

[c++] MaxHeapify, BuildMaxHeap으로 HeapSort 구현하기

이번엔 수업시간에 배운MaxHeapify를 바탕으로HeapSort를 구현해보려고 한다 MaxHeapify와 HeapSort의 내용은 아래에 있다 https://think0905.tistory.com/entry/computer-science-Binary-Tree-Max-Heap [computer science] Binary Tree, Max Heap이 게시글은서울대학교 데이터사이언스대학원조요한 교수님의데이터사이언스 응용을 위한 컴퓨팅 강의를학습을 위해 재구성하였습니다.중간고사가 지나고 이전까지는 기본적인c++에 대해서think0905.tistory.com https://think0905.tistory.com/entry/computer-science-Heap-Sort%EC%99%80-Priority-Queu..

기술/알고리즘 2024.12.13

[c++] Find the Hub 문제 Floyd-Warshall Algorithm & Bellman-Ford Algorithm으로 해결

이번에 해결한 알고리즘 문제는Find the Hub이다  sssp (single-source shortest path)와apsp (all-pair shortest path)를 이용해서city들 중에서 hub city를 찾는 알고리즘 문제이다 문제에서 찾아야하는 hub city는주어지는 distance threshold 이하의 거리로가장 많은 도시들을 연결하는 city이다   이번 문제의 자세한 설명은 위와 같다input으로는 총 3개가 들어오는데도시의 개수인 ndouble array 형식의 edges그리고 distanceThreshold가 들어온다 위 예시의 경우 city1은 총 3개의 도시를 threshold보다 같거나 작은 거리로 연결하고city2도 동일하게 3개의 도시를 threshole보다 같거나..

기술/알고리즘 2024.12.06

[c++] Height Order 문제 해결하기 (Floyd-Warshall's Algorithm, Topological Sort)

이번에 해결한 알고리즘 문제 내용 정리이다 문제 내용은 다음과 같다 위 Figure 1을 보자각 vertex는 학생을 나타내고각 edge들은 키의 서열을 나타낸다 1 -> 5는 학생 1은 학생 5보다 키가 작다는 뜻이고5 -> 2는 학생 5는 학생 2보다 키가 작다는 뜻이다그럼 자연스럽게 학생 1은 학생 2보다 키가 작은 것이 된다 이런식으로 학생들의 키를 graph로 나타내었는데위 Figure 1에서 학생 4만 유일하게 다른 모든 학생들과 키를 비교할 수 있다 이게 무슨 말이냐하면유일하게 학생 4만 다른 모든 학생들을 비교 대상으로 가져왔을 때누가 키가 더 크고 작은지를 판별할 수 있다는 말이다 한 번 예시와 함께 이해해보자 학생 1과 학생 4를 비교해본다면1->5->4 이므로 학생 4가 1보다 크다학..

기술/알고리즘 2024.12.05

[c++] tree structure를 base로 한 max heap 구현하기

원래 흔히 배우는 max heap은자료 구조를 array로 많이 사용한다 나도 배울 때는 분명 array 자료구조를 이용해서max heap을 구현하는 것을 배웠지만어째서인지 (..) 이번 과제는 array가 아닌tree 구조를 base로 Max heap을 구현하는 것이었다 max heap에 대한 강의 내용 정리는 아래 링크를 참고!https://think0905.tistory.com/entry/computer-science-Binary-Tree-Max-Heap [computer science] Binary Tree, Max Heap이 게시글은서울대학교 데이터사이언스대학원조요한 교수님의데이터사이언스 응용을 위한 컴퓨팅 강의를학습을 위해 재구성하였습니다.중간고사가 지나고 이전까지는 기본적인c++에 대해서th..

기술/알고리즘 2024.12.02