1. A memory system comprising: a non-volatile memory; a control unit that reads a received word as a soft decision value from the non-volatile memory; and a decoder that performs soft-decision decode to the read received word, wherein the decoder includes a test pattern generating unit that generates a plurality of test patterns indicating an assumed error position, a hard decision decoder that performs hard-decision decode by using the plurality of test patterns and the read received word and outputs a plurality of decoded words, each of the plurality of decoded words corresponding to each of the plurality of test patterns, a distance calculating unit that calculates Euclidean distance between the decoded word and the received word and selects a decoded word to be a decoding result from among the plurality of decoded words output from the hard decision decoder based on the Euclidean distance, the Euclidean distance being calculated based on the plurality of decoded words which are output from the hard decision decoder and of which the number of output decoded words is less than that of all the combinations of the test patterns in a case that the number of flips is one to a predetermined value, the number of flips being the number of errors which are assumed in the test pattern, and a processing control unit that outputs the selected decoded word.