- 알고리즘 분류 : DFS - 사용 언어 : JAVA - 문제 요점 상근이 집에서 축제하는 곳까지 갈 수 있는 지 없는 지 를 구하는 문제 워셜-플로이드 알고리즘을 이용할 수 있지만, 갈 수 있냐 없냐를 구하는 것이기에 필자는 DFS 이용 두 좌표 사이의 거리 : x 좌표의 차이 + y 좌표의 차이 맥주 20병을 가지고 있고, 한 병당 50m 이동 가능하므로 편의점을 들리지 않는다면 최대 1000미터 이동 가능 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.StringTo..
코테 공부
- 알고리즘 분류 : DFS - 사용 언어 : JAVA - 문제 요점 청소기가 방을 돌아다니며 청소한 방의 수를 구하는 문제 로봇청소기의 작동하는 방식을 그대로 구현하면 어렵지 않은 문제 DFS를 이용하여 풀이 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { // N x M 크기의 맵 // r,c : 현재 청소기의 위치. d : 청소기의 방향 public static int N, M, r, c, d; // 맵 public static int[][] map; /..
- 알고리즘 분류 : BFS - 사용 언어 : JAVA - 문제 요점 현재 층에서 특정 층으로 가는 최소 경로(버튼을 적게 누르는)를 구하는 문제 엘리베이터는 1층부터 존재하는 것을 유의 F층까지 갈 수 있으므로 방문 체크용 배열은 F+1만큼 크기 할당 BFS를 이용하여 풀이 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; public class Main { // F : 건물의 전체 층 수 // G :..
- 알고리즘 분류 : BFS - 사용 언어 : JAVA - 문제 요점 비가 많이 와서 특정 지역이 물에 잠길 수도 있다. 상하좌우 인접한 지역을 하나의 안전구역이라고 한다. 물의 높이에 따라 가장 많은 안전구역의 갯수를 반환하는 문제 물의 높이는 0~가장 높은 지역의 높이까지만 확인 물의 높이를 바꿔가며 BFS를 이용하여 안전구역의 갯수 확인 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; public..
- 알고리즘 분류 : 에라토스테네스의 체 - 사용 언어 : JAVA - 문제 요점 두 수 사이의 소수를 모두 구하는 문제 에라토스테네스의 체를 이용하여 풀이하면 비교적 간단하게 풀이 가능 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class Main { //각 수가 소수인지 아닌지 (true : 소수, false:소수X) public static boolean[] arr; // 에라토스테네스의 체 이 public static void..
- 알고리즘 분류 : BFS - 사용 언어 : JAVA - 문제 요점 수빈이는 지정된 범위(0~100000) 내에서 자유롭게 움직일 수 있음. BFS를 이용하여 K까지 가는 데 최소 소요 시간을 출력 가능 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; public class Main { // N : 수빈이의 위치 // K : 동생의 위치 public static int N, K; // 동생에게 가는 ..
- 알고리즘 분류 : DFS - 사용 언어 : JAVA - 문제 요점 두 사람 사이의 관계의 수를 구하는 문제 DFS를 이용해 구하면 쉽게 풀이 가능 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.StringTokenizer; public class Main { // N : 사람의 수, M : 관계의 개수 // TARGET1, TARGET2 : 촌수를 계산해야하는 두 사람 public static int N, M, TARGET1, TARGET2; // 방문 체크 변수 pub..
- 알고리즘 분류 : DFS - 사용 언어 : JAVA - 문제 요점 1번 컴퓨터로부터 DFS탐색을 진행하여 만나는 노드의 갯수를 반환하여 풀이 가능 DFS에 대해 잘 이해하고 있다면 간단한 문제임 소스 설명은 주석을 참고해주세요 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.StringTokenizer; public class Main { // N : 컴퓨터의 수 // M : 네트워크 수 public static int N,M; // 그래프 변수 public static ArrayList graph = n..