1. A method of decoding a non-binary low density parity check (LDPC) code, the method comprising: receiving a plurality of messages from a plurality of variable nodes connected to a check node and hard-deciding the messages except for one message from a variable node among the plurality of variable nodes; and combining the hard-decided values with the one message that is not hard-decided, to update a final output message.