[ヒント]並べ替えるときは覚えておいたほうがいい
1.以前にアクセスした座標がDFSを超える一方向を向くには を用いる.
ex 2*3配列の場合
0,1 -> 1
1,2 -> 5
表示方法
3.ArrayList 2 D配列
難易度の高い問題でよく使われます.
初期化を忘れないで
static boolean dfs(int y, int x, int by, int bx, char alp) {
if (visited[y][x]) return true;
// visit을 여기서 계산
visited[y][x] = true;
for (int k = 0; k < 4; ++k) {
int ny = y + dy[k];
int nx = x + dx[k];
if (!(0 <= ny && ny < n && 0 <= nx && nx < m)) continue;
if (a[ny][nx] != alp) continue;
// 이부분!
// bx by 는 before이다.
if (ny == by && nx == bx) continue;
if(dfs(ny, nx, y, x, alp))
return true;
}
return false;
}
2.2 D配列の位置を数値で表すex 2*3配列の場合
0,1 -> 1
1,2 -> 5
表示方法
3.ArrayList 2 D配列
難易度の高い問題でよく使われます.
初期化を忘れないで
sArrayList<class>[][] chips;
Reference
この問題について([ヒント]並べ替えるときは覚えておいたほうがいい), 我々は、より多くの情報をここで見つけました https://velog.io/@alwaysryu13/코테-배열-다룰-때-기억해두면-좋을-것-2가지テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol