(#4963 Java) 섬의 개수
문제 이해 건너갈 수 있는 경로가 있으면 같은 섬에 있다고 보고, 섬의 개수를 세는 문제이다. 이 문제는 dfs/bfs 문제로 풀 수 있다. 따로 테스트 케이스가 몇 개인지 주어지지 않고, w,h로 0이 주어지면 프로그램이 종료되므로, 0을 2개 입력 받기 전까지 반복해주면 된다. 그럼 문제를 해결해보자. 문제 해결 우선 내가 처음부터 생각하지 못했던 부분은 대각선도 이동할 수 있다는 부분이다. 상하좌우까지만 좌표설정을 해보았는데, 대각선은 처음이다. 대각선 이동은 (상+좌), (상+우), (하+좌), (하+우)의 네 가지 경우가 있으므로 아래와 같이 설정하면 된다. static int[] dx = {-1, -1, -1, 0, 0, 1, 1, 1}; static int[] dy = {-1, 0, 1, -..
2024. 3. 5.
(#1012 Java) 유기농 배추
문제 해결 dfs 문제로 풀 수 있는 문제이다. static으로 main 밖에서 선언할 것들을 선언해준다. static int T; static int M,N,K; static int[][] Graph; static boolean[][] Visited; //방문 여부 static int count; static int[] dx = {0, -1, 0, 1}; //좌우 static int[] dy = {-1, 0, 1, 0}; //상하 dfs 함수를 만들어준다. 배추흰지렁이는 상하좌우로 모두 움직일 수 있으므로 반복문의 범위를 4번 반복하도록 설정해준다. 각각 행/열의 새로운 좌표를 만들어준 후, 새로운 좌표의 범위 체크, 방문여부 체크, 1인지 아닌지 체크 (배추가 위치해있는 곳)를 한 후 모든 검증이 끝..
2024. 3. 4.