[PCCE 기출문제] 9번 / 이웃한 칸
각 칸마다 색이 칠해진 2차원 격자 보드판이 있습니다. 그중 한 칸을 골랐을 때, 위, 아래, 왼쪽, 오른쪽 칸 중 같은 색깔로 칠해진 칸의 개수를 구하려고 합니다.
보드의 각 칸에 칠해진 색깔 이름이 담긴 이차원 문자열 리스트 board
와 고른 칸의 위치를 나타내는 두 정수 h
, w
가 주어질 때 board[h][w]
와 이웃한 칸들 중 같은 색으로 칠해져 있는 칸의 개수를 return 하도록 solution 함수를 완성해 주세요.
https://school.programmers.co.kr/learn/courses/30/lessons/250125
public class Main {
public static void main(String[] args) {
// String[][] board = {{"blue", "red", "orange", "red"}, {"red", "red", "blue", "orange"}, {"blue", "orange", "red", "red"}, {"orange", "orange", "red", "blue"}};
// int h = 1;
// int w = 1;
String[][] board = {{"yellow", "green", "blue"}, {"blue", "green", "yellow"}, {"yellow", "blue", "blue"}};
int h = 0;
int w = 1;
var reuslt = solution(board, h, w);
System.out.println(reuslt);
}
public static int solution(String[][] board, int h, int w) {
int result = 0;
int maxH = board.length;
int maxW = board[0].length;
String currentColor = board[h][w];
if (h - 1 > -1) {
String top = board[h - 1][w];
if (currentColor.equals(top)) {
result++;
}
}
if (h + 1 < maxH) {
String bottom = board[h + 1][w];
if (currentColor.equals(bottom)) {
result++;
}
}
if (w - 1 > -1) {
String left = board[h][w - 1];
if (currentColor.equals(left)) {
result++;
}
}
if (w + 1 < maxW) {
String right = board[h][w + 1];
if (currentColor.equals(right)) {
result++;
}
}
return result;
}
}