The sample solution is wrong. The grammar presented is not yet LL(1),
though it can be made so by further transformation.
Here is the solution grammar after introduction of D:
A -> dabaD
A -> cBbaD
D -> cbaD
D -> epsilon
B -> dab
B -> Cb
C -> cB
C -> Ac
This is not LL(1), because (for example), the table entry for
row D column c has two entries:
D -> cbaD
D -> epsilon
because FOLLOW(D) = FOLLOW(A) = {c}.
To make this grammar LL(1), we can expand the use of C in the rules for B:
B -> dab
B -> cBb
B -> Acb
and then expand the use of A to obtain:
B -> dab
B -> cBb
B -> dabaDcb
B -> cBbaDcb
and finally perform left-factoring and introducing a new non-terminal E to get:
B -> dabE
B -> cBbE
E -> epsilon
E -> aDcb
The rules for C still prevent the grammar from being LL(1), but because C is no
longer reachable from the start symbol (assuming that is A), we can just drop
its rules altogether. The final grammar is:
A -> dabaD
A -> cBbaD
D -> cbaD
D -> epsilon
B -> dabE
B -> cBbE
E -> epsilon
E -> aDcb
which is LL(1).