[BaekJoon] 14940번 - 쉬운 최단거리 [Java][C++]
문제 링크 1. 문제 풀이 각 지점에서 목표지점까지의 최단 거리를 구하는 문제로 BFS를 이용하면 해결할 수 있다. 각 지점에서 매번 목표 지점까지의 거리를 구하는 것이 아니라 목표 지점에서 각 지점까지의 거리를 구하는 방식으로 한번의 BFS로 모든 지점까지의 거리를 구할 수 있으며 이를 2차원 배열 dist에 저장했다. dist의 경우 초...
문제 링크 1. 문제 풀이 각 지점에서 목표지점까지의 최단 거리를 구하는 문제로 BFS를 이용하면 해결할 수 있다. 각 지점에서 매번 목표 지점까지의 거리를 구하는 것이 아니라 목표 지점에서 각 지점까지의 거리를 구하는 방식으로 한번의 BFS로 모든 지점까지의 거리를 구할 수 있으며 이를 2차원 배열 dist에 저장했다. dist의 경우 초...
문제 링크 1. 문제 풀이 무방향 그래프에서 연결 요소의 개수를 구하는 문제로 BFS나 DFS를 활용해서 각 노드에 대해 방문하지 않았으면 모든 연결된 노드를 방문 처리하고 개수를 하나씩 세도 되며, 유니온 파인드 알고리즘을 활용해서 서로소 집합을 만든 후 집합의 그룹장의 개수를 세주어도 된다. 2. 코드 1. BFS [Java]...
문제 링크 1. 문제 풀이 테스트 케이스 별로 9회 동안 각 팀의 점수 합을 더해서 비교만 해주면 된다. 2. 코드 1. 풀이 [Java] import java.io.*; import java.util.*; public class Main { public static void main(String[] args) thro...
문제 링크 1. 문제 풀이 사탕을 나누는 것은 몫으로, 남은 사탕은 나머지를 구하는 것으로 간단하게 구할 수 있다. 2. 코드 1. 풀이 [Java] import java.io.*; import java.util.*; public class Main { public static void main(String[] args...
문제 링크 1. 문제 풀이 두 큐에서 각 큐의 원소의 합이 서로 같아지는지 찾는 문제로 각 큐의 합을 미리 구한 후 합이 큰 큐에서 합이 작은 큐로 원소를 이동하는 과정을 반복하면 된다. 이때 각 큐의 원소 합을 같게 만들 수 없는지를 판단해야하는데 이는 큐의 특정 원소가 다른 큐에 들어갔다가 다시 원래 큐로 돌아로는 것을 모든 원소에 대해...
1. 객체와 테이블 매핑 엔티티 매핑은 객체와 테이블, 필드와 컬럼, 기본 키, 연관관계 매핑을 모두 해줄 수 있고, 아래와 같은 애너테이션을 사용하면 된다. 객체와 테이블 매핑: @Entity, @Table 필드와 컬럼 매핑: @Column 기본 키 매핑: @Id 연관관계 매핑: @ManyToOne, @JoinColumn ...
문제 링크 1. 문제 풀이 주어진 지도에서 섬의 개수를 구하는 문제로 대각선으로 연결되어도 동일한 섬이라서 대각선까지 탐색하는 팔방탐색을 활용하면 된다. 지도의 각 좌표에 대해 땅이면 해당 땅이 위치한 섬의 모든 땅을 방문 처리를 하는 과정을 반복하는 방식으로 해결할 수 있다. 2. 코드 1. BFS [Java] import j...
문제 링크 1. 아이디어 주어진 지도의 모든 좌표를 순회하며 집이 있는 곳이면 단지의 크기를 구하고 개수를 세주면 된다. 단지의 크기는 BFS나, DFS를 활용해서 구하면 되고 이를 오름차순으로 정렬해서 출력해줬다. 2. 코드 1. BFS [Java] import java.io.*; import java.util.*; publ...
문제 링크 1. 문제 풀이 치즈는 외부 공기와 두 변이상 접촉한 경우 한 시간 후에 사라진다. 이때 모눈종이의 가장자리는 치즈가 놓이지 않는 것으로 가정하므로 무한 루프를 돌며 모눈종이 가장자리 중 임의의 좌표에서 BFS를 통해 두 번 이상 치즈가 존재하는 것으로 판단된 좌표들을 찾아서 녹여주는 방식으로 해결했다. 치즈가 존재하는 좌표를 ...
문제 링크 1. 아이디어 주어진 모눈종이에서 직사각형 내부를 제외한 분리된 영역의 개수와 영역의 넓이를 오름차순으로 구하는 문제로 BFS나, DFS를 활용하면 간단하게 해결할 수 있다. 주어진 모눈종이를 시계방향으로 90도 회전했다고 생각하면 행이 N, 열이 M인 2차원 배열로 생각할 수 있으며, 직사각형이 차지하는 위치를 마킹하고 마킹되지...