Sequence converges iff $\limsup = \liminf$
Useful facts that you should verify:
Any unbounded sequence has a subsequence diverging to $\infty$ or to $-\infty$.
Any bounded sequence has a convergent subsequence.
You correctly point out that the hypothesis that $\limsup_{n \to \infty} s_n$ and $\liminf_{n \to \infty} s_n$ are both finite implies that $(s_n)_{n=1}^{\infty}$ has no subsequences that diverge to infinity. But (1) implies that more is true: the sequence $(s_n)_{n=1}^{\infty}$ must be bounded.
Fix any $\epsilon > 0$.
There cannot be infinitely many $n$ for which $s_n \geq s + \epsilon$, because you could select out of them a subsequence $y_k = s_{n_k}$ satisfying $y_k \geq s + \epsilon$ for all $k$.
- Since the sequence $(s_n)_{n=1}^{\infty}$ is bounded, so is the sequence $(y_k)_{k=1}^{\infty}$. So by (2) it has a subsequence convergent to some limit $L$; and by basic facts about limits, since $y_k \geq s + \epsilon$ for all $k$, one must have $L \geq s + \epsilon$.
- But $L$ is clearly also a subsequential limit of $s$, allowing us to deduce that $\limsup_{n \to \infty} s_n \geq s + \epsilon$, a contradiction.
Similarly, there cannot be infinitely many $n$ for which $s_n \leq s - \epsilon$.
So there is a positive integer $N$ with the property that whenever $n \geq N$ one has $$ s - \epsilon < s_n < s + \epsilon, $$ and since $\epsilon > 0$ was arbitrary, $(s_n)_{n=1}^{\infty}$ converges to $s$.
Another possible solution (for bounded case only), just use these facts:
$\inf A=\sup A \quad\Leftrightarrow\quad A=\{\text{single element}\}.$ (A bounded and nonempty) -Proof
$(x_n)\text{ bounded and every convergent subsequence of } x_n\text{ converges to } a \quad\Rightarrow \quad\lim(x_n)=x$$ -Proof