[백준2887] 행성터널[java]
문제에서 최소비용을 계산할 때 x,y,z의 거리중 가장 작은 값의 비용이 든다고 했다. x,y,z로 각각 오름차순으로 정렬한 뒤 가중치를 구해서 한번에 저장한다. 그 후에 find-union알고리즘을 이용해 순환하지 않게 최소값을 구하면 된다. 코드 package baekjoon; import java.io.*; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.StringTokenizer; public class planet_tunnel { static class Point{ int num,x,y,z; Point(int num, int x, int y, int z){ this..
2021. 4. 5.
[백준 7562] 나이트의 이동 [java]
bfs를 이용하여 매우 쉽게 해결한 문제이다. 다른 문제랑 달랐던 부분은 나이트의 이동이기 때문에 움직이는 곳이 상,하,좌,우가 아니라 8곳이나 된다는 것이었다. 하지만 그 부분은 전역 배열을 선언해둬서 쉽게 해결해줬고 요번 문제는 x와 y의 class를 따로 만들지 않고 queue에 x따로 y따로 만들어 줘봤다. 코드 package baekjoon; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class knight_move { static int[] dx = {-2,-1,2,1,-2,-1,1,2}; static int[] dy = {1,2,1,2,-1,-2,-2,-1}; static int[]..
2021. 4. 1.