728x90
import java.util.*;
public class Solution {
public int solution(int[][] board) {
int[] dy = {-1, 1, 0, 0}, dx = {0, 0, -1, 1};
int N = board.length;
int[][][] cost = new int[N][N][4];
for (int i = 0; i < N; i++)
for (int j = 0; j < N; j++)
Arrays.fill(cost[i][j], Integer.MAX_VALUE);
Queue<int[]> queue = new LinkedList<>();
queue.add(new int[]{0, 0, 0, 1});
queue.add(new int[]{0, 0, 0, 3});
while (!queue.isEmpty()) {
int[] cur = queue.poll();
for (int k = 0; k < 4; k++) {
int ny = cur[0] + dy[k], nx = cur[1] + dx[k];
int c = cur[2] + (cur[3] == k ? 100 : 600);
if (ny < 0 || nx < 0 || ny >= N || nx >= N || board[ny][nx] == 1 || cost[ny][nx][k] <= c) continue;
cost[ny][nx][k] = c;
queue.add(new int[]{ny, nx, c, k});
}
}
return Arrays.stream(cost[N - 1][N - 1]).min().getAsInt();
}
}
728x90
'programmers' 카테고리의 다른 글
프로그래머스 3단계 : 자물쇠와 열쇠 (Java 자바) (0) | 2023.09.14 |
---|---|
프로그래머스 3단계 : 합승 택시 요금 (Java 자바) (0) | 2023.09.14 |
프로그래머스 3단계 : 다단계 칫솔 (Java 자바) (0) | 2023.09.13 |
프로그래머스 3단계 : 길 찾기 게임 (Java 자바) (0) | 2023.09.13 |
프로그래머스 3단계 : 거스름돈 (Java 자바) (0) | 2023.09.13 |