[Algorithm] 프로그래머스_게임 맵 최단거리(JAVA)

2024. 12. 14. 15:46·Algorithm

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

 

프로그래머스

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

programmers.co.kr


이 문제는 전형적인 bfs 문제가 아닐까 싶다.

방문할때마다 이전 방문지 값에 +1을 해주고 최하단에 도착했을 때 값을 반환해준다.

최하단에 이르지 못하는 경우에는 -1을 반환해준다.

 

대충 이러한 그림을 상상할 수 있다.

이 경우 최하단에 도착했을 때 11이므로 11을 그대로 반환해주면 된다.

 

이를 구현한 코드는 아래와 같다.

import java.util.*;
class Solution {
    public int solution(int[][] maps) {
        int answer = -1;
        int[] dx = {0, 1, 0, -1};
        int[] dy = {1, 0, -1, 0};
        
        Queue<int[]> queue = new LinkedList<>();
        queue.add(new int[]{0,0});
        
        while(!queue.isEmpty()){
            int[] current = queue.poll();
            int n = current[0];
            int m = current[1];
            if(n == maps.length - 1 && m == maps[0].length-1){
                return maps[n][m];
            }
            
            for(int i = 0; i < 4; i++){
                int nx = n + dx[i];
                int my = m + dy[i];
                if(nx >= 0 && my >= 0 && nx < maps.length && my < maps[0].length
                   && maps[nx][my] == 1){
                    maps[nx][my] = maps[n][m] + 1;
                    queue.add(new int[]{nx, my});
                }
            }
        }
        return answer;
    }   
}

처음에 n,m을 Node 클래스에 생성해서 큐에 넣어줬는데 int[]{} 배열로 사용하면 속도가 더 빠르다!~

'Algorithm' 카테고리의 다른 글

[Algorithm] 99클럽 코테 스터디 1일차 TIL | 백준_암기왕(2776번)  (0) 2025.01.13
[Algorithm] 프로그래머스_모의고사(JAVA)  (1) 2024.12.14
[Algorithm] 프로그래머스_체육복(JAVA)  (0) 2024.12.13
[Algorithm] 프로그래머스_완주하지 못한 선수(JAVA)  (0) 2024.12.13
[Algorithm] 프로그래머스_네트워크(JAVA)  (0) 2024.12.11
'Algorithm' 카테고리의 다른 글
  • [Algorithm] 99클럽 코테 스터디 1일차 TIL | 백준_암기왕(2776번)
  • [Algorithm] 프로그래머스_모의고사(JAVA)
  • [Algorithm] 프로그래머스_체육복(JAVA)
  • [Algorithm] 프로그래머스_완주하지 못한 선수(JAVA)
dev_ajrqkq
dev_ajrqkq
알고리즘 천재가 될 거야
  • dev_ajrqkq
    기록이 자산이다
    dev_ajrqkq
  • 전체
    오늘
    어제
    • 분류 전체보기 (147)
      • Front-end (0)
      • Back-end (11)
        • Spring (1)
        • Java (8)
      • CS (9)
        • 데이터베이스 (5)
        • 네트워크 (4)
      • Algorithm (80)
      • 이것저것 (0)
      • 버그잡기 (1)
      • TIL (37)
      • 후기 (1)
      • 취준 (0)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      티스토리챌린지
      오블완
      항해99
      Til
      99클럽
      개발자취업
      코딩테스트준비
      TypeScript
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.2
    dev_ajrqkq
    [Algorithm] 프로그래머스_게임 맵 최단거리(JAVA)
    상단으로

    티스토리툴바