Scala, 4141 39 bytes
n=>_.scanLeft("#"*n)((s,x)=>"" "*x+s"+_.init drop _)
Uses 01 for dropping a hash on the right, 10 for dropping a hash on the left. Accepts (n)(list)
. Outputs a list of strings.
Input and output reversed, 35 bytes
n=>_.scanRight("#"*n)(" "*_+_.init)
Help! The sky's falling down!
#
##
###
####
#####
######
#######
########
#########
##########