[BOJ][Java] 1068번 트리
·
PS
문제 링크 : https://www.acmicpc.net/problem/1068 문제 자체는 리프노드의 개수를 세는 문제로 단순하다.하지만 단순 리프노드를 세는 게 아닌 중간에 노드를 삭제했을 때 리프노드의 개수를 구해야 한다. 문제를 2가지 방법을 해결해봤다.첫 번째 방법첫 번째는 자식노드의 개수를 직접 카운팅 하여 자식노드가 없는 노드의 개수를 세는 방식이다.먼저 노드를 삭제하기 이전의 자식노드 개수로 counts배열을 초기화한다.이후 만약 2번 노드를 삭제한다면 2번 노드의 부모노드인 0번 노드의 자식개수를 1개 빼준다.그다음 2번 노드와 2번 노드의 자식들은 자식노드의 개수를 -1로 바꿔준다. package boj;import java.util.*;import java.io.*;public cla..
[BOJ][Java] 11725번 트리의 부모 찾기
·
PS
문제 링크 : https://www.acmicpc.net/problem/11725 이 문제는 트리를 구현하는 기본적인 문제이다.루트노드가 1번으로 고정되어 있기 때문에 그저 양방향 인접 리스트로 그래프를 표현하고1번 노드부터 탐색하며 부모노드를 찾아주면 된다. 예제 입력 1번을 그래프로 표현하면 위와 같다.여기서 루트노드가 1번이기 때문에 루트노드부터 시작해서4번 노드의 부모는 1번, 6번 노드의 부모는 1번2번 노드의 부모는 4번, 7번 노드의 부모는 4번이런 식으로 순차적으로 부모를 찾아주면 된다.이 과정에서는 DFS나 BFS를 사용하면 된다. 그래프를 리스트로 표현할 때는 방향이 없는 간선이므로 이와 같이 인접리스트로 표현해주면 된다. package boj;import java.util.*;impo..
AWS에서 백엔드 서버와 데이터 베이스 서버 연결하기
·
Practice
프론트엔드 백엔드 서로 다른 서버로 수동 배포하고 연결하기(feat. CORS해결)프론트엔드가 포함된 백엔드 프로젝트 수동 배포하기AWS EC2 nginx에 프론트엔드 정적 배포EC2에서 nginx에 정적으로 파일을 올려 프론트엔드 프로젝트를 배포하는 방법을 강의를 듣고 따로 찾아보constant1601.tistory.com지난번에는 프론트엔드, 백엔드를 각각 수동으로 다른 서버에 배포하고 서로 연결하여 CORS를 해결해 봤다.이번에는 데이터베이스 서버가 있을 때 이를 백엔드 서버와 연결하는 방법을 알아보자.데이터베이스의 경우 RDS를 사용할 수 있지만 이번에는 EC2에 직접 MySQL을 설치하여 데이터베이스 서버로 사용했다. 개발을 할 때와 운영서버에 올렸을 때 서로 다른 DB를 쓰는 경우에 Sprin..
[BOJ][Java] 1414번 불우이웃돕기
·
PS
문제 링크 : https://www.acmicpc.net/problem/1414 문제를 살펴보면 해결하는 방법은 최소신장 트리를 이용하면 간단히 해결할 수 있다.주의해야 하는 것은 문자를 정수로 변경하는 것과A -> A로 돌아오는 간선은 제외하고 생각해야 한다는 것이다. 예제 입력 1번을 그래프로 표현하면 위와 같다. 문제를 해결하는 과정은 아래와 같다.1. 주어진 간선(랜선)의 총합을 구한다 (sum)2. 자기 자신에게 돌아오는 간선(랜선)을 제외하고 나머지 간선을 가중치를 기준 오름차순으로 정렬한다.3. MST알고리즘을 통해 모든 정점을 잇는 거리의 최단거리를 구한다(minSum)4. 만약 고른 간선의 길이가 주어진 정점의 개수 - 1 개가 아니라면 -1을 출력하고, 맞다면 sum - minSum 값..