So as Sergio mentioned, the 50th percentile is the median (as per the Wikipedia page on percentiles - look at the 2nd last sentence in the intro blurb). Thus, we may proceed assuming we are trying to calculate the median for the set given.
Your reasoning is somewhat correct. To calculate median, the median must have an equal count of numbers within the set both above and below the median. I suspect you extended this concept to "50% above and below median". However, if we apply the same test to your data set of {1, 2, 3, 900}, if 3 is the median, we find that 50% of the set is below ({1,2}) and 25% is above ({900}). Given that $25\% \neq 50\%$, we know that 3 cannot be the median.
Let us, for now, look at a set with an odd count of numbers (rather than an even count as you have). Let us take {1,2,3,4,900}. Now, the median is indeed 3, as we have 50% of the numbers below ({1,2}) and 50% above ({4,900}).
We may now proceed to the sets with an even count of numbers. Let us take {1,2,3,4}. Here, no matter what number we pick from the set, we cannot have an equal count of numbers above and below (convince yourself of this). Thus, we, as a mathematical community, have accepted that the median is the mean of the combination of the 2 numbers that are closest to what would be the median. In this case, those 2 numbers are $2$ and $3$, as both are as close to the center of the ordered set as possible. Thus, we take the mean of these 2 values to get $2.5$ as the median.
By extending this logic, we can see that the median of the set {1,2,3,900} would be the mean of $2$ and $3$ and would be $2.5$.