あ、数値への圧縮なら足し算でなくビット演算を利用して、ひとつの数値の中に2つ分の文字を保存するのもありかもしれませんね。メモリサイズは変わらないかもしれませんが……… ビット演算を理解すれば作るのは簡単なので、これを機に覚えてみるのもオススメです。