$ pip3 install postgres 위 명령어 실행시 발생하는 에러 해결하기 ⛳️ 1. 로컬에 PostgreSQL이 설치되어 있지 않은 경우 (1) MacOS $ brew install postgresql (2) Ubuntu $ sudo apt-get install postgresql postgresql-contrib libpq-dev 아래 사이트에서 ubuntu 설치 패키지 확인 한 번하는 걸 추천한다 https://www.postgresql.org/download/linux/ubuntu/ PostgreSQL: Linux downloads (Ubuntu) Linux downloads (Ubuntu) PostgreSQL is available in all Ubuntu versions by defa..
✅ 진행 전 체크 리스트 1. 구매한 도메인 2. 도메인과 웹서버 연결 이 두개가 선행되어 있다는 전제 하에 진행된다! 현재 도메인이 HTTP 프로토콜로 접속이 가능한 상태일 때 HTTPS 인증서를 발급받는 방법이다. 여러 서버에 대해서 관리하는 경우는 로드밸런서를 이용해야 한다. ⛳️ 1. 운영체제 확인 $ lsb_release -dc Description: Debian GNU/Linux 10 (buster) Codename: buster 나는 운영체제가 Debian 10이고 nginx 웹서버를 이용해서 배포하고 있다. ⛳️ 2. 운영체제와 웹서버에 맞는 cerbot 파악 https://certbot.eff.org/instructions Certbot Instructions Tagline certbot..
github의 여러 오픈소스를 보다 보면 이모지를 사용하는 오픈 소스들을 종종 볼 수 있더라구요 별 거 아닌거 같아도 일반적인 git convention보다 직관적이고 글자만 가득한 코딩 세상에서.. 너무너무 예뻤습니다 gitmoji를 쓰면 가장 좋은 점은 아이콘만 봐도 어떤 작업을 했는지(새로운 기능을 만들었는지, 버그를 고쳤는지, 버전을 업그레이드 했는지 등등) 을 알 수 있다는 점입니다 저는 또 예쁘고 힙해 보이는거는 지나치지 못하기 때문에 바로 해보도록 하겠습니다. 1. 설치하기 gitmoji를 설치하는 방법은 두 가지 입니다. node의 npm 모듈로 설치할 수도 있고 macOSX의 brew로도 설치할 수 있습니다. npm 설치: $ npm i -g gitmoji-cli 맥북 brew 설치: $..
목차 1. Map이란? 2. Map의 특성 3. Map의 종류 1. Map이란? key, value로 이루어진 자료구조 key와 value가 짝지어지는 걸 mapping된다고 함 2. Map의 특성 key의 중복이 허용되지 않는다 value는 중복이 혀용된다 key, value 중 하나만 저장하지 않는다 배열과 같이 순서보다 정의된 key로 상응하는(mapping)되는 데이터를 찾고 저장하는 데 유용 3. Map의 종류 (JAVA) HashMap key, value의 쌍으로 구성된 일반적인 Map 순서 보장되지 않음 사용자가 위치를 결정하거나 알 수 없음 많은 양의 데이터를 검색할 때 좋은 성능을 보임 TreeMap key의 값을 이용해 순서대로 정렬하여 저장 key의 값을 이용해 탐색, 정렬을 통한 탐..
목차 1. Trie란? 2. Trie의 특성 3. Trie의 장단점 4. 구현 코드 5. 사용 예시 1. Trie란? 탐색 트리의 일종으로 동적 집합이나 연관 배열을 저장하는 데 사용됨 Digital Tree, Radix Tree, Prefix Tree라고도 불림 텍스트 자동 완성 기능과 같이 문자열을 저장하고 탐색하는 데 유용 2. Trie의 특성 이진 탐색 트리와 달리 트리의 어떤 노드도 그 노드 자체와 연관된 키는 저장하지 않음 형태의 맵이다 key는 주로 문자열이다 value는 key에 해당하는 자식 노드이다. 키의 값은 자료 구조 전체에 분산된다 노드의 모든 자손은 노드에 연관된 문자열의 공통 접두사를 공유한다 루트 노드는 빈 문자열이며 자식 노드만 가지고 있다 문자열의 길이가 m일 때, 탐색과..
https://www.acmicpc.net/problem/11725 11725번: 트리의 부모 찾기 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. www.acmicpc.net ✨ 문제 풀이 BFS또는 DFS를 이용해서 해결할 수 있는 문제입니다. 1 6 6 3 3 5 4 1 2 4 4 7 연결된 노드의 정보가 위와 같다고 예시를 들어봅시다. 문제에 따르면 1은 무조건 루트 노드입니다. 따라서 1과 연결된 노드들은 모두 부모가 1인 노드입니다. 1과 연결된 노드는 4, 6입니다. 이 노드들에 대해서 차례대로 확인합니다. 4와 연결된 노드는 1, 2, 7 입니다. 1은 무조건 부모 노드이므로 2, 7이 자식 노드입니다. 즉 2, 7의 ..
https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net ✨ 문제 풀이 간단한 BFS 해결 문제입니다. u와 v의 컴퓨터가 연결되어 있다면 u번째 배열에 v를 저장해주고, 마찬가지로 v번째 배열에 u를 저장해줍니다. 그리고 1번 컴퓨터와 연결되어 있는 모든 컴퓨터를 찾아야 하므로 BFS를 통해 연결된 컴퓨터를 하나씩 방문하면서 개수를 세어나갑니다. 이때 주의할 점은 1번에 영향을 받은 컴퓨터의 개수를 찾는 것이므로 1번 컴퓨터를 제외한 개수를 출력해야 합니다..
https://www.acmicpc.net/problem/2638 2638번: 치즈 첫째 줄에는 모눈종이의 크기를 나타내는 두 개의 정수 N, M (5 ≤ N, M ≤ 100)이 주어진다. 그 다음 N개의 줄에는 모눈종이 위의 격자에 치즈가 있는 부분은 1로 표시되고, 치즈가 없는 부분은 0으로 www.acmicpc.net ✨ 문제풀이 n*m 격자 모양 행렬을 BFS로 해결하는 문제입니다. 그러나 반복해서 전체 격자를 검색하면서 치즈가 전부 녹아서 없어질 때까지 진행해야 합니다. 이 문제의 가장 핵심은 '외부 공기'와 '내부 공기'를 구분하는 일입니다. '외부 공기'와 접촉이 없고 치즈에 둘러싸인 내부 공기에 닿은 치즈 면은 녹지 않는 면입니다. 바로 이 공기를 구분할 때 BFS를 사용합니다. '내부 공..
https://www.acmicpc.net/problem/17129 17129번: 윌리암슨수액빨이딱따구리가 정보섬에 올라온 이유 첫째 줄에 정보섬 2층의 크기 n과 m이 주어진다. (1 ≤ n,m ≤ 3000, 4 ≤ n×m ≤ 9×106) 이후 n행 m열에 걸쳐 0, 1, 2, 3, 4, 5로만 구성된 Ai,j가 주어진다. Ai,j와 Ai,j+1사이에 공백은 주어지지 않는다. 2, www.acmicpc.net ✨ 문제 풀이 2가 딱따구리 가족이므로 2의 (y, x)좌표가 시작점이 될 것입니다. 그리고 3, 4, 5는 딱따구리 가족이 각자 먹고 싶은 음식이고 종착점이 됩니다. 딱따구리 가족은 3, 4, 5 중 아무거나 하나만 가장 먼저 먹을 수 있는지만 구하면 됩니다. 1은 장애물이라 갈 수 없으며 0은..
n행, m열의 행렬을 받고 상하좌우 4방향으로 한 칸씩 옮기면서 해답을 찾아가는 BFS 문제를 해결하기 위한 응용 코드입니다. 문제에서 주어진 조건을 잘 읽고 아래 코드를 응용해서 풀이하면 됩니다. 🗓 코드 #include #include #include using namespace std; #define MAXINT 100 int dx[] = {0, -1, 0, 1}; int dy[] = {1, 0, -1, 0}; int n, m, start_y, start_x; int arr[MAXINT][MAXINT]; bool visited[MAXINT][MAXINT]; queue q; void bfs() { q.push({start_y, start_x}); while (!q.empty()) { int y = q..