백준 16173 점프왕 쩰리 (Small) JAVA

sundays·2022년 10월 13일
0

문제

점프왕 쩰리 (Small)

풀이

bfs 가 먼저 생각나서 bfs로 풀긴했지만 dfs 로도 풀어야 할 것 같다.
종료 조건은 빈 큐를 가지게되거나 map[x][y] 값이 -1일 경우이다.
지도에서 0,0 에서 갈수 있는 곳을 전부 다 가보면 된다. 다음에 갈 곳을 큐에다가 차례대로 넣고 해당 값이 -1 또는 빈 큐 이면 종료가 될 것이다.

		boolean[][] check = new boolean[n][n];
        Queue<Map> q = new LinkedList<>();
        q.add(new Map(0, 0));
        while (!q.isEmpty()) { // 종료 조건
            Map m = q.poll();
            if (m.x < n && m.y < n) {
                if (map[m.x][m.y] == -1) { // 종료 조건
                    System.out.println("HaruHaru");
                    System.exit(0);
                }
                if (!check[m.x][m.y] && map[m.x][m.y] != -1) {
                    check[m.x][m.y] = true;
                    q.add(new Map(m.x + map[m.x][m.y], m.y));
                    q.add(new Map(m.x, m.y + map[m.x][m.y]));
                }
            }
        }
        System.out.println("Hing");

전체 코드

전체 코드

profile
develop life

0개의 댓글