[Java] 돌 잘 치우기


[Java] 돌 잘 치우기

문제 접근법 최근 많은 알고리즘 문제를 풀고 꽤 실력이 늘었다고 자부했지만 푸는데 시간을 엄청 많이 소모했다. 공부는 모르는 것을 배우는 것이니, 시간 낭비라고 생각하지말고 배움의 시간으로 받아들이자! 이 문제에서 어려운 부분은 어떤 돌을 옮길지 선택이 필요하다는 것이다. 처음 떠오른 방법은 다음과 같았다. 백트래킹(조합 이용) 로직은 다음과 같이 생각했다. 1. 그래프 상의 모든 돌을 리스트에 담는다. 2. 각 돌을 적절히 m개 뽑아 BFS를 돌린다. 3. 최대값을 업데이트 한다. 소스 코드 import java.io.*; import java.util.*; public class Main { static int n, k, m; static int[][] graph; static boolean [][]visited ; static int answer = 0; static int[] dx = {0, 1, 0, -1}; static int[] dy = {1, 0, -1, 0}; sta...



원문링크 : [Java] 돌 잘 치우기