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");