1. A method of programming data in a phase-changeable memory device, comprising: applying a first pulse to a memory cell with multiple states; and applying a second pulse to condition the memory cell to one of the multiple states, wherein the second pulse is variable in waveform depending on the multiple states.