boj 연습
14500 테트로미노
송주환
2018. 7. 23. 01:52
백트래킹 dfs 문제
1. ㅗ 모양은 dfs 로 풀 수 없는걸 인지하는것이 중요하다.
2. 상하좌우 네방향을 dfs로 구현하면 모든 회전, 대칭에 대한 모양이 나온다.. <- 사실 이걸 생각 못하여 모든 방향에 대한 좌표를 구현하려 했다... (어렵..)
->센스 문제로 봐야할지 아니면 문제에 대한 통찰력을 키워야 할지는 잘 모르겠다. 여튼 좋은 문제인 것은 분명하다!
추가) 보통 최대값을 구할 때 재귀 함수에서 if(maxx<ans) 이런식으로 구현했는데 시간초과가 걸린다..
오히려, return 을 통해 ans = max(ans,dfs(x + dx[i],y + dy[i],d+1)+arr[x][y]); 이렇게 구현하면 이유는 모르겠지만 시간이 적게 걸린다.
이 점을 유의해야겠다.