f is continuous and bounded on $[a,b]$ such that $c,d\in[a,b]\subset \mathbb{R}$.
Let $\alpha :=inf\left\{f(x):x\in [a,b]\right\}$. This exists because f is continuous on the bounded interval $[a,b]$. (What is it's infimum?)
$\alpha$ denoted as the infimum of the function $f$ on $[a,b]\Rightarrow \alpha+\frac 1n $ isn't the greatest lower bound of $f$. Thus $\exists$ some mapping $x_n \rightarrow f(x_n) \ s.t. f(x_n)$ lies in between its infimum $\alpha$ and $\alpha+\frac 1n$.
Mathematically this can be notated as the inequality $\alpha \leq f(x_n) \leq \alpha+\frac 1n$.
$f$ is bounded on $[a,b]\Rightarrow$ its equivalent sequence, let's call it $a_n =\left\{x_n\right\}_{n=1}^{n= \infty } \ \forall n\in\mathbb{N}$, is also bounded on $[a,b]$. Thus by Bolzano-Weierstrass theorem, $a_n$ contains at least one convergent subsequence in the interval $[a,b]$, let's call it $a_{n_i}$ for $i\in$ of $n$, such that $\lim_{i\to\infty}{ \ (a_{n_i})}=c$
Because f is continuous, the limit of the function, or in this case, sequence, is the function of the limit. So the following results:
$$\lim_{i\to\infty}{ \ (a_{n_i})}=c\Rightarrow f(\lim_{i\to\infty}{ \ (x_{n_i}))}=f(c) \ for \ c\in [a,b]$$
Going back to our definition for $\alpha$, and applying the squeeze theorem for functions, we note:
$$\alpha \leq f(x_n) \leq \alpha+\frac 1n \Rightarrow \lim_{n\to\infty}{ (\alpha)} = \lim_{n\to\infty}{f(x_n)}=\lim_{n\to\infty}{(\alpha+\frac 1n})=\alpha$$
Noting that if a sequence or function is convergent, that all of its subsequences/subfunctions are convergent to that same limit value, we thus finally have:
$$\lim_{i\to\infty}{f(x_{n_i})=\lim_{n\to\infty}f(x_n)=\alpha}$$
This implies $\alpha :=inf\left\{f(x):x\in [a,b]\right\}=f(c)$
Thus the function f achieves a minimum value $f(c)$ for $c\in [a,b]$.
To prove the maximum version, consider some number $\beta \ s.t. \ \beta :=sup\left\{f(x):x\in [a,b]\right\}=f(d)$ for $d\in [a,b]$.