728x90
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
풀이
AI가 추천해서 풀게된 문제
BFS는 아니고.. 유사 BFS?
전체코드
import java.io.*;
import java.util.*;
class Solution {
static int[] moveX = {-1, -1, -1, 0, 0, 1, 1, 1};
static int[] moveY = {-1, 0, 1, -1, 1, -1, 0, 1};
static boolean visited[][];
public int solution(int[][] board) {
visited = new boolean[board.length][board[0].length];
for(int i=0; i<board.length; i++){
for(int j=0; j<board[0].length; j++){
if(board[i][j] == 1){
Check(i, j, board);
}
}
}
int answer = 0;
for(int i=0; i<board.length; i++){
for(int j=0; j<board[0].length; j++){
if(board[i][j] == 0){
answer++;
}
}
}
return answer;
}
static int[][] Check(int x, int y, int[][] map){
for(int i=0; i<8; i++){
int newX = x + moveX[i];
int newY = y + moveY[i];
if(newX < 0 || newX >= map.length || newY < 0 || newY >= map[0].length || visited[newX][newY] || map[newX][newY] == 1){
continue;
}
map[newX][newY] = 2;
visited[newX][newY] = true;
}
return map;
}
}
728x90
'코딩테스트 > Algorithm' 카테고리의 다른 글
[Programmers] 최대공약수와 최소공배수 (JAVA) (0) | 2024.11.10 |
---|---|
[Programmers] 예산 (JAVA) (0) | 2024.11.10 |
[Programmers] 옹알이(1) (JAVA) (0) | 2024.11.08 |
[Programmers] 가장 긴 팰린드롬 (JAVA) (1) | 2024.11.07 |
[Programmers] 테이블 해시 함수 (JAVA) (0) | 2024.11.06 |