프로그래머스 1844 게임 맵 최단거리 JAVA

sundays·2022년 10월 13일
0

문제

게임 맵 최단거리

풀이

정사각형 맵 인줄 알았는데 아니었음. 그래서 처음에 틀렸는데 그것빼곤 알고리즘은 맞았다

		boolean[][] check = new boolean[maps.length][maps[0].length];
        Queue<Map> q = new LinkedList<>();
        q.add(new Map(0, 0, 0));

        while (!q.isEmpty()) {
            Map m = q.poll();
            if (m.x >= 0 && m.x < maps.length && m.y >= 0 && m.y < maps[0].length) {
                if (m.x == maps.length - 1 && m.y == maps[0].length - 1) {
                    answer = m.count +1;
                    break;
                }
                if (!check[m.x][m.y] && maps[m.x][m.y] == 1) {
                    check[m.x][m.y] = true;
                    m.count++;
                    q.add(new Map(m.x - 1, m.y, m.count));
                    q.add(new Map(m.x, m.y - 1, m.count));
                    q.add(new Map(m.x + 1, m.y, m.count));
                    q.add(new Map(m.x, m.y + 1, m.count));
                }
            }
        }

4방향 전부 가기 위해서 큐에다 넣어주는데 다들 배열로 해주는거 같음. 근데 난 왜케 굳이 싶은건지 청개구리가 따로없음. for문안에 dx, dy 더해주는게 좀 별로인거같다
dfs로 풀어보는게 좋겠다

전체 코드

전체 코드

profile
develop life

0개의 댓글