Vertically collapse text Say I have text like this (each word on one line, with no spaces)

Programming
Puzzles
&amp;
Code
Golf


That makes no sense! It totally defies the laws of physics.

Your challenge is to remedy this impossible situation and collapse the text like so:

P
Prog
&amp;uzz
Coderam
Golflesming


So that there is no empty space underneath any character but the characters retain their vertical order.

The goal is to satisfy the requirements but use the fewest bytes of source code possible.
Pyth, 10 bytes

jb_.T.T_.z


Try it online in the Pyth Compiler/Executor.

Idea

We can achieve the desired output by applying four simple transformations:


Reverse the order of the lines:

Golf
Code
&amp;
Puzzles
Programming

Transpose rows and columns:

GC&amp;PP
oour
ldzo
fezg
lr
ea
sm
m
i
n
g


This top justifies, collapsing the original columns.
Transpose rows and columns:

Golflesming
Coderam
&amp;uzz
Prog
P

Reverse the order of the lines:

P
Prog
&amp;uzz
Coderam
Golflesming



Code

        .z  Read the input as a list of strings, delimited by linefeeds.
       _    Reverse the list.
   .T.T     Transpose the list twice.
  _         Reverse the list.
jb          Join its strings; separate with linefeeds.