To prove (a), it might be easiest to prove the contrapositive: any topology that isn't the discrete topology generates a non-Frechet space. It's easiest to see how this happens on a set with two elements (which you can induct to any finite set). Consider the following example:
$X = \{a,b\}$
$\tau_X = \{\{a\},\{a,b\}, X, \emptyset \}$,
which is a non-discrete topology on a finite set. Here, we can distinguish points $a$ and $b$, but we cannot separate them with neighborhoods. In general, any topology on a finite set that is neither discrete nor trivial will require you relax $T_1$, which you should be able to argue in about the same way as above.
For part (b), the answer given by @drhab is good (note that the minimal cardinality of the topology depends on the cardinality of the base set). You might also try thinking about the problem slightly differently. In order to be $T_0$, $\tau_X$ must have at least one open set excluding each point; the minimal way to do this is to pick a "base point" in your set and "stack" your topology on top of it. That is, your topology will consist of the sets $\emptyset, \{x_1\}, \{x_1,x_2\}, \ldots, X$ and have cardinality $n+1$. This satisfies $T_0$ because any $x_j, x_k \in X$ with $k > j$ will satisfy $x_j,x_k \in \{x_1,\ldots,x_k\}$ and $x_k \notin \{x_1,\ldots,x_j\}$.