그래프와 순회. [2667], [1012]
[1. 문제 설명] NxN 크기의 배열에서 아래,위로 인접한 집들을 하나의 단지로 묶을 수 있을 때, 전체 단지의 개수와 각 단지에 속한 집들의 개수를 오름차순으로 출력 (대각선으로 인접한 것은 취급하지 않는다.) [2. 풀이 접근] 인접한 집으로 이동 할 수 있다는 점에서 그래프 개념으로 접근할 수 있다. 어떤 위치에서 이동할 수 있는 방향은 상,하,좌,우 4가지가 되므로, 각 경우에 대해서 dfs 를 수행 해 볼수 있다. 그러나, 좌표를 움직여야 하므로, 좌표가 NxN 배열을 넘어 선 경우, 이미 방문한 좌표, 좌표에 해당하는 값이 0인 경우는 무시해야 한다. 또한 작성 한 dfs 함수는 최종적으로 하나의 단지의 포함 된 집의 개수를 반환하는데, 기저 사례를 통과한 경우 최소 하나의 집이 있음이 보장..
백 트래킹. [2580]
[1. 문제 설명] 스도쿠 규칙에 맞게 9x9 배열을 채워서 출력한다. [2. 풀이 접근] 잘못된 풀이 1차 풀이는 배열의 모든 원소에 접근 후, 해당 원소 값이 0인 경우, 1 ~ 10 까지 값 중에서 행/열, 그리고 작은 사각형 내 에서 허용된 값인 경우 해당 값을 이차원 배열에 할당 한다. 위 과정 전체를 하나의 문제로 놓고 재귀 호출한다. 이렇게 구현한 경우 시간초과로 인해 실패 처리되었다. 시간 초과에 대한 정확한 원인은 잘 모르겠지만, 아래와 같은 이유 때문으로 추정한다. 채워야 할 값의 위치가 아래와 같을 때 [y,x] = [ [0,0], [0,1], [3,3] ] for y < 9 for x < 9 // [y, x] 가 0인 경우 아래를 수행 /// 재귀 호출로 실행 된 경우, [0, 0]..