Dev/Algorithm

[프로그래머스] 이웃한 칸

VIPeveloper 2024. 5. 18. 08:47
728x90
반응형

문제

https://school.programmers.co.kr/learn/courses/30/lessons/250125?language=java

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

생각

  • BFS 알고리즘의 기초라고 생각했다.
  • 구현 방향이 그대로 문제에 제시되어있어서 어렵지 않게 풀 수 있었다.

코드

public class Main {

    public static void main(String[] args) {
        System.out.println(solution(new String[][]{{"blue", "red", "orange", "red"}
                , {"red", "red", "blue", "orange"}
                , {"blue", "orange", "red", "red"}
                , {"orange", "orange", "red", "blue"}}, 1, 1));
    }

    public static int solution(String[][] board, int h, int w) {
        int answer = 0;
        String board_color = board[h][w];
        for (int i = 0; i < dh.length; i++) {
            int h_check = h+dh[i];
            int w_check = w+dw[i];
            if(0 <= h_check && h_check < board.length && 0 <= w_check && w_check < board[0].length) {
                if(board_color.equals(board[h_check][w_check])) {
                    answer++;
                }
            }
        }
        return answer;
    }
    public static int[] dh = new int[]{0, 1, -1, 0};
    public static int[] dw = new int[]{1, 0, 0, -1};
}

다른 사람 코드

  • 참신하게 있는 다른 사람들 코드가 있었나 살펴보았지만 다 똑같아서 PASS
728x90
반응형