permutation
function backtracking(depth):
global answer
if (base condition) {
(answer 갱신)
return
}
for (i=0; i<len(width); i++) {
visited[i] = True
backtracking(i, depth+1)
visited[i] = False
}
combination
function backtracking(start, depth):
global answer
if (base condition) {
(answer 갱신)
return
}
for (i=start; i<len(width); i++) {
visited[i] = True
backtracking(i, depth+1)
visited[i] = False
}
permutation과 combination을 잘 구분해서 시간초과 안나게 할 것.