Note: Jfisher's solution is much shorter than mine, and uses the same ideas. I encourage you to read theirs instead.
They show that any 2 friends must have the same number of friends, hence the result follows immediately.
Set up the standard graph interpretation. Color an edge red if they are friends, blue if they are not. We consider the (red) degree, unless explicitly stated as blue degree.
The conditions are:
- No two friends have a friend in common $ \Rightarrow$ There is no red triangle.
- Every to strangers have two and only two friends in common $\Rightarrow$ Every blue edge is the base of exactly 2 red-red-blue triangles.
Claim: Any 2 vertices connected by a blue edge have the same red degree.
Proof: Pick any blue $v_i v_j$. Divide the rest of the vertices into the following groups:
L: $\deg (v_i) - 2$ vertices that are friends with $v_i$ but not $v_j$
C: 2 vertices that are friends with $v_i$ and $v_j$.
R: $ \deg (v_j) - 2$ vertices that are friends with $v_j$ but not $v_i$.
B: All other vertices, which are neither friends with $v_j$ or $v_j$.
We want to show that $|L| = |R|$.
Pick a vertex $v_l$ in L.
Since $v_l v_j$ are not friends, and $v_l v_i v_j$ is one blue-red-blue triangle, there is exactly 1 other vertex $v_r$ in R that $v_l$ is friends with.
This establishes a bijection between $L$ and $R$, showing that $ \deg v_i = \deg v_j$.
Claim: Every vertex has at least 1 blue edge
Proof: Suppose there is a vertex that has only red edges.
Then, since there are no red triangles, all the edges in the $n-1$ complete graph are blue.
This contradicts condition 2, since for any blue edge, there is exactly 1 red-red-blue triangle.
Claim: For $n \geq 5$, any 2 vertices are connected by a blue path
Proof: Suppose not. Let $v_i, v_j$ not be connected by a blue path.
Let $B (v_i)$ (resp $B(v_j)$) be the set of vertices connected to $v_i$ (resp $v_j$) by a blue path.
Since $B(v_i)$ and $B(v_j)$ are not connected by a blue path, any edges between these 2 sets are red.
From the previous claim, $ |B(v_i) | \geq 2$.
If $|B(v_i) | \geq 3$, then consider any blue edge in $ B(v_j)$, this contradicts condition 2.
Hence $|B(v_i) | = 2$, which means that $v_i$ is blue-connected to only 1 other vertex. Then, we have $n-2 \geq 3$ red-red-blue triangles, which is a contradiction.
Corollary: For $n \geq 5$, the degrees of the vertices are equal.
Corollary: For $ n \leq 4$, the only case we have to consider is when $|B(v_i) | = 2$ and $ B(v_j) | = 2$, which gives us $n = 4$.
This is a valid case of 4 red edges and 2 blue, with the degree of each edge equal to 2, hence all equal.
Hence, the degrees are all equal.
I leave the second part to you. show what you've tried.