yunbinni   1년 전

우선 저는, DFS로 생각했습니다.

DFS함수의 인수를 y, x좌표, 로봇방향(dir), 깊이(L)로 설계했습니다.

왼쪽으로 회전할땐 dir을 1씩 줄이고 dir이 0이하면 다시 3으로 복구하여서

방향벡터의 인덱스로 쓸 생각이었습니다.

dy[4]={-1, 0, 1, 0};

dx[4]={0, 1, 0, -1};

에서 인덱스(dir)가 하나가 줄면 왼쪽으로 회전한다...이렇게요.

문제의 규칙 2a가 어떤경우든, 왼쪽으로 회전은 하니까

일단 회전부터 시켰습니다.

그래서 방문한 적이 없고, 빈 칸이면 다음 레벨(깊이)로의 재귀를 실시했습니다.

방문체크는 어차피 다음재귀 맨처음에 하니, 미리 하진 않았습니다.

제가 DFS로 짠 것때문에 시간초과가 뜬 걸까요?

yhj1937   1년 전

DFS내 for문에서 여러 개의 DFS 분기가 생깁니다. 로봇 청소기가 왼쪽에 청소할 공간을 만나면 더 이상 회전할 필요가 없겠죠?

yunbinni   1년 전

yhj1937님 정말, 감사드립니다!

덕분에 '맞았습니다'가 떴습니다!!!!!

댓글을 작성하려면 로그인해야 합니다.