[코테 팁] 배열 다룰 때 기억해두면 좋을 것

류기탁·2022년 1월 6일
0

CodingTest/Algorithm

목록 보기
15/22

1. 전에 방문했던 좌표는 뛰어넘는 DFS

  • 한 방향으로 가고 싶을 때 사용
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차원 배열의 위치를 숫자로 나타내는 것

ex 2*3 배열일때
0,1 -> 1
1,2 -> 5
로 나타내는 방법

3. ArrayList 2차원배열

높은 난이도의 문제에선 많이쓴다.
초기화 해주는 거 까먹지 말자.

sArrayList<class>[][] chips;
profile
오늘도 행복한 하루!

1개의 댓글

comment-user-thumbnail
2022년 4월 22일

이 글을 보고 코딩테스트 합격했습니다. 감사합니다.

답글 달기