Backtracking is an optimization of Brute-force (Exhaustive). Backtracking attempts to find a solution, but discards searching it if there is no way it can achieve the solution requirements.
Pseudocode
Algorithm BackTrack(attempt = [],possible_options = []):
if attempt meets all requirements then:
return attempt
else if attempt could reach the goal:
for each i in possible_options do:
Append i to attempt
solution = BackTrack(attempt,possible_options)
if solution = True then:
return solution
Pop the last element from attempt
return False