프로그래머스 '게임 맵 최단거리' 자바

2023. 4. 18. 11:28·개발 공부/알고리즘

 

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

 

 

 

프로그래머스

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

programmers.co.kr

* 문제 링크

 

 

import java.util.*;

class Solution {
    int[] dx = {-1, 1, 0, 0};
    int[] dy = {0,0,-1, 1}; 
    
    public int solution(int[][] maps) {
        int answer = 0;
        
        int[][] visited = new int[maps.length][maps[0].length];
        bfs(maps, visited);
        answer = visited[maps.length-1][maps[0].length-1];
        if(answer == 0){
            answer = -1;
        }
            
        return answer;
    }
    
    void bfs(int[][] maps, int[][] visited){
        Queue<int[]> q = new LinkedList<>();
        //큐에 현재 좌표 노드 넣고 표시
        q.add(new int[]{0,0});
        while(!q.isEmpty()){
            int[] now = q.poll();
            int x = now[0];
            int y = now[1];
            visited[0][0] = 1;

            //상하좌우 탐색
            for(int i = 0; i < 4; i++){
                int nx = x + dx[i];
                int ny = y + dy[i];

                if(nx >= 0 && nx < maps.length && ny >=0 && ny < maps[0].length
                        && visited[nx][ny] ==0 &&maps[nx][ny] != 0 ){
                    visited[nx][ny] = visited[x][y] + 1;
                    q.add(new int[]{nx, ny});
                }
            }
        }
    }
}

이 문제를 풀면서 bfs에 대한 감을 좀 익힌 거 같다

보통 dfs/bfs를 보면 노드를 방문했는지 안했는지에 대한 배열을 만들어 주는 거 같다

확실히 자료구조, 알고리즘 등에서 전공과 비전공이 갈린다는 것을 많이 느낀다

그리고 배열 관련해서는 항상 length의 범위 안에 있도록 index 땡땡 out of  length 땡땡 오류를 조심해야 될꺼 같다

으렵다 으려워

 

'개발 공부 > 알고리즘' 카테고리의 다른 글

백준 11047 '동전 0' 자바  (0) 2023.04.25
프로그래머스 '네트워크' 자바  (0) 2023.04.18
프로그래머스 '체육복' 자바  (0) 2023.04.13
<programmers> 이상한 문자 만들기 자바  (0) 2022.09.29
<programmers> 약수의 개수와 덧셈 자바  (0) 2022.09.27
'개발 공부/알고리즘' 카테고리의 다른 글
  • 백준 11047 '동전 0' 자바
  • 프로그래머스 '네트워크' 자바
  • 프로그래머스 '체육복' 자바
  • <programmers> 이상한 문자 만들기 자바
코딩숙
코딩숙
개발이라는 끝이 없는 바다 묵묵히 꾸준히 항해하기
  • 코딩숙
    코딩숙
    코딩숙
  • 전체
    오늘
    어제
    • 분류 전체보기 (63)
      • CS 공부 (17)
        • 클라우드 (3)
        • 네트워크 (3)
      • 개발 공부 (40)
        • 오류 해결 (4)
        • 알고리즘 (12)
        • Spring (3)
        • JPA (2)
        • TIL(오늘 내가 배운 것) (9)
        • 코드복습 (1)
        • 디자인 패턴 (1)
      • IT 관련 영상 메모 (1)
      • 데일리피드백 (0)
      • Tools (1)
      • Wishy (이력서 평가 프로젝트) (3)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    백준
    개발공부
    마이크로서비스
    키 페어 변경
    데이터베이스 손상
    404 Not Found
    게임 맵 최단거리 자바
    user mode
    isBefore()
    getter method
    http
    innodb
    java
    데이터 타입
    setter method
    302 Found
    인프런
    변수
    개발자
    programmers #정수 내림차순으로 배치하기
    isAfter()
    도메인설계
    데이터베이스 백업
    자바
    JPA
    appsmith
    프로그래머스
    HTTP BODY
    프로그래머스 네트워크 자바
    키 페어 분실
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
코딩숙
프로그래머스 '게임 맵 최단거리' 자바
상단으로

티스토리툴바