[프로그래머스 알고리즘 고득점 Kit][깊이/너비 우선 탐색(DFS/BFS)][Java] 게임 맵 최단거리

2026. 2. 16. 19:10·알고리즘 & 자료구조/문제 풀이

https://school.programmers.co.kr/learn/courses/30/lessons/1844

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

정답 풀이

V + E -> N*M + 4(N*M) -> O(NM)

간단한 bfs 문제

import java.io.*;
import java.util.*;

class Solution {
    
    final static int[] dx = {-1, 1, 0, 0};
    final static int[] dy = {0, 0, -1, 1};
    static int[][] map;
    
    public int solution(int[][] maps) {
        int n = maps.length;
        int m = maps[0].length;
        map = maps;
        return bfs(n, m);
    }
    public int bfs(int n, int m) {
        int[][] cnt = new int[n][m];
        Queue<int[]> q = new ArrayDeque<>();
        q.add(new int[] {0, 0});
        cnt[0][0] = 1;
        while(!q.isEmpty()) {
            int[] cur = q.poll();
            int x = cur[0];
            int y = cur[1];
            for(int d=0; d<4; d++){
                int nx = x + dx[d];
                int ny = y + dy[d];
                if(nx < 0 || nx >= n || ny < 0 || ny >= m || map[nx][ny] == 0 || cnt[nx][ny] != 0) continue;
                
                q.add(new int[] {nx, ny});
                cnt[nx][ny] = cnt[x][y] + 1;
            }
        }
        return cnt[n-1][m-1] == 0 ? -1 : cnt[n-1][m-1];
    }
}

'알고리즘 & 자료구조 > 문제 풀이' 카테고리의 다른 글

[프로그래머스 알고리즘 고득점 Kit][스택/큐][Java] 같은 숫자는 싫어  (0) 2026.02.21
[프로그래머스 알고리즘 고득점 Kit][해시][Java] 전화번호 목록  (0) 2026.02.20
[프로그래머스 알고리즘 고득점 Kit][해시][Java] 포켓몬  (0) 2026.02.17
[프로그래머스 알고리즘 고득점 Kit][정렬][Java] K번째 수  (0) 2026.02.16
[프로그래머스 알고리즘 고득점 Kit][해시][Java] 완주하지 못한 선수  (0) 2026.02.15
'알고리즘 & 자료구조/문제 풀이' 카테고리의 다른 글
  • [프로그래머스 알고리즘 고득점 Kit][해시][Java] 전화번호 목록
  • [프로그래머스 알고리즘 고득점 Kit][해시][Java] 포켓몬
  • [프로그래머스 알고리즘 고득점 Kit][정렬][Java] K번째 수
  • [프로그래머스 알고리즘 고득점 Kit][해시][Java] 완주하지 못한 선수
수수다
수수다
우하하
  • 수수다
    그냥살자
    수수다
  • 전체
    오늘
    어제
    • 분류 전체보기 (63)
      • 프로젝트 (1)
      • 알고리즘 & 자료구조 (30)
        • 내용 정리 (2)
        • 문제 풀이 (28)
      • 데이터베이스 (27)
        • 내용 정리 (1)
        • 문제 풀이 (26)
      • CS (2)
      • 기타 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 네이버 블로그
  • 공지사항

  • 인기 글

  • 태그

    삼성청년SW·AI아카데미
    DP
    like
    bfs
    코딩테스트
    바킹독
    date_format
    그래프
    HTTP 메서드
    이분탐색
    SQL
    동적계획법
    코팅테스트
    바이브코딩
    mysql
    프로그래머스 알고리즘 고득점 kit
    해시
    코테
    IFNULL
    Round
    분리집합
    깊이/너비 우선 탐색(DFS/BFS)
    매개변수탐색
    프로그래머스
    AVG
    coalesce
    알고리즘
    유니온파인드
    Java
    정렬
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
수수다
[프로그래머스 알고리즘 고득점 Kit][깊이/너비 우선 탐색(DFS/BFS)][Java] 게임 맵 최단거리
상단으로

티스토리툴바