우선 배열의 인덱스와 다른 형태의 입력 값을 받는 것을 고려해야 된다.
방향만 바꾸어서 생각하면 된다.
문제는 달팽이 모양처럼 배열을 타고 들어가야 되는데 재귀적으로 풀어냈다.
기본 포맷은 DFS에 착안했다. 물론 DFS는 아니다.
기본 아이디어는 재귀적 함수 호출에 DIRECTION정보를 넘겨주며 DIRECTION방향으로 더이상 진행 할 수 없을 때 DIRECTION방향을 바꾸어주는 방법으로 문제를 해결해나갔다.
어떤 의미인지 잘 이해가 안 갈 수도 있겠다.
1 |
2 |
3 |
4 |
5 |
6 |
|
|
|
|
|
7 |
|
|
|
|
|
8 |
|
|
|
|
|
9 |
|
|
|
|
|
10 |
18 |
|
|
|
|
11 |
17 |
16 |
15 |
14 |
13 |
12 |
(1,1)에서 시작했을 때
무조건 방향은 오른쪽방향 -> 아래방향 -> 왼쪽방향 -> 위쪽방향 으로 흐르게 되어있다.
그래서 방향을 int 형으로 만들어 생각했다.
right : 1, down : 2, left : 3, up : 4
그래서 현재 방향점에서 진행 가능하면 기존방향으로의 좌표를 증가시켜주면서 현재까지의 현재까지 진행된 순번번호를 함수의 인자로 넘겨서 답을 구하는 방식이다.
다시 한 번 정리해서 올려야 겠다!
'알고리즘문제풀이' 카테고리의 다른 글
더블릿_최소자리바꿈 (0) | 2015.03.24 |
---|---|
2477_참외밭 (0) | 2015.03.07 |
10158_개미 (0) | 2015.03.06 |
1149_RGB거리 (0) | 2015.03.01 |
9655 돌게임 (0) | 2015.03.01 |