OA - A
Let x be the number of shirts sold, and let y be the number of sweaters sold. The question can be rephrased as "Is y>x?".
The question also tells us the prices of the shirts and sweaters, so we know that the average price of all the shirts and sweaters that the store sold during the sale was (15x + 25y) / 2.
Statement (1) is sufficient. It tells us that the the average equals 21. Knowing that [(15x + 25y) / 2] is closer to 25 than to 15 tells us that y is greater than x. (If y=x, the average is exactly 20. If y<x, the average is less than 20. If y>x, the average is greater than 20. You can test a few numbers for x and y to persuade yourself of this.)
Statement (2) is not sufficient. It tells us that 15x + 25y =420, which is not enough to tell us whether y>x. That's because y could be greater than x (when y=12 and x=8) or less than x (when y=3 and x=23).
Since statement (1) is sufficient and statement (2) is not sufficient, the answer is (A).
The idea is that shirts cost $15 and sweaters cost $25. If an equal number of each is sold, then the average would be right in the middle: $20. If more shirts are sold, then the average will be between $15 and $20. If more sweaters are sold, then the average will be between $20 and $25.
So your formula also allows you to see that, because the average is $21, which is between $20 and $25. But the real key is not in the formula itself - it's in the thinking I outlined in the previous paragraph.
If you follow this total/# items = average ----- translated: 15x+25y/(x+y) = 21, then I think,
15X + 25 Y = 21X + 21 Y
4Y = 6X
Y/X = 3/2. Therefore Y is greater i.e More sweaters sold.
So answer - A
OR
Try the method of alligation
From statement 1
15 25
21
4 6
So obviously number of sweaters are more ..........