The Solution:

The trick to solving this puzzle is in steps 2 and/or 3, move boxes from one side to the other.

Number the boxes 1 through 12.

Start off with them in 3 groups: [1, 2, 3 and 4], [5, 6, 7 and 8] and [9,10,11 and 12]

Weigh 1, 2, 3 and 4 vs 5, 6, 7 and 8 with 3 possible outcomes:

1. If they balance then 9,10,11,12 have the odd box, so weigh 6,7,8 vs 9,10,11 with 3 possible outcomes:

1a. If 6,7,8 vs 9,10,11 balances, 12 is the odd box. Weigh it against any other box to determine if heavier or lighter.

1b. If 9,10,11 is heavy then they contain a heavy box. Weigh 9 vs 10, if balanced then 11 is the odd heavy box, else the heavier of 9 or 10 is the odd heavy box.

1c. If 9,10,11 is light then they contain a light box. Weigh 9 vs 10, if balanced then 11 is the odd light box, else the lighter of 9 or 10 is the odd light box.

2. If 5,6,7,8 > 1,2,3,4 then either 5,6,7,8 contains a heavy box or 1,2,3,4 contains a light box,

so weigh 1,2,5 vs 3,6,12 with 3 possible outcomes:

2a. If 1,2,5 vs 3,6,12 balances, then either 4 is the odd light box or 7 or 8 is the odd heavy box. Weigh 7 vs 8, if they balance then 4 is the odd light box, or the heaviest of 7 vs 8 is the odd heavy box.

2b. If 3,6,12 is heavy then either 6 is the odd heavy box or 1 or 2 is the odd light box. Weigh 1 vs 2, if balanced then 6 is the odd heavy box, or the lightest of 1 vs 2 is the odd light box.

2c. If 3,6,12 is light then either 3 is light or 5 is heavy. Weigh 3 against any other box, if balanced then 5 is the odd heavy box else 3 is the odd light box.

3. If 1,2,3,4 > 5,6,7,8 then either 1,2,3,4 contains a heavy box or 5,6,7,8 contains a light box

so weigh 5,6,1 vs 7,2,12 with 3 possible outcomes:

3a. If 5,6,1 vs 7,2,12 balances, then either 8 is the odd light box or 3 or 4 is the odd heavy box. Weigh 3 vs 4, if they balance then 8 is the odd light box, or the heaviest of 3 vs 4 is the odd heavy box.

3b. If 7,2,12 is heavy then either 2 is the odd heavy box or 5 or 6 is the odd light box. Weigh 5 vs 6, if balanced then 2 is the odd heavy box, or the lightest of 5 vs 6 is the odd light box.

3c. If 7,2,12 is light then either 7 is light or 1 is heavy. Weigh 7 against any other box, if balanced then 1 is the odd heavy box else 7 is the odd light box.

I was given this problem about 50 years ago right after I got my first job as Computer Programmer. I think my boss was testing my analytic ability. It took me about 30 minutes to solve it. I think my boss was amazed that I did it so quickly.