1. A method of driving a nonvolatile memory device, the method comprising: determining a first data state among a plurality of data states; setting a number of simultaneously programmed bits according to the first data state; performing a scanning operation on data input from an external device to search data to be programmed; and programming the searched data in response to the set number of simultaneously programmed bits; wherein the set number of simultaneously programmed bits is different from a set number of simultaneously programmed bits corresponding to at least a second data state among the plurality of data states.