ÆíÁý °Å¸® hint

m À¸·Î º¯ÇÏ´Â ÇÑ ±ÛÀÚÀÇ º¯È­·Î ù¹øÂ° ´Ü¾î°¡ µÎ¹øÂ°·Î µÈ´Ù. ´Ü¾î sport ´Â p ÇѱÛÀÚ¸¦ »èÁ¦Çϸé sort·Î ¹Ù²ð¼ö ÀÖ°í, µ¿ÀÏÇÏ°Ô sort´Â p ÇѱÛÀÚ¸¦ »ðÀÔÇϸé sport°¡ µÈ´Ù.

µÎ ¹®ÀÚ¿­ s1, s2ÀÇ ÆíÁý°Å¸®´Â s1¿¡¼­ s2·ÎÀÇ ÃÖ¼Ò º¯È¯ ¹®ÀÚÀÇ ¼ö·Î Á¤ÀǵȴÙ.

  1. ¹®ÀÚ º¯È¯
  2. ¹®ÀÚ »ðÀÔ
  3. ¹®ÀÚ »èÁ¦

ÀÌ·± ¹Ýº¹ÀûÀÎ °ü°è¿¡ µû¶ó ÆíÁý °Å¸®´Â ¹®ÀÚ¿­ s1, s2¿¡ ´ëÇØ d(s1,s2)·Î Á¤ÀǵȴÙ.

d(' ','') = 0 (''Àº ÅÖºó ¹®ÀÚ¿­ÀÌ´Ù)
d(s,'') = d('', s) = |s| (ÅÖ ºó ¹®ÀÚ¿­°ú sÀÇ °Å¸®´Â sÀÇ ±æÀÌÀÌ´Ù.)
d(s1+ch1, s2+ch2)
= min( d(s1, s2) + ch1 != ch2 , (s1°ú s2ÀÇ ÃÖ¼ÒÆíÁý°Å¸® + µÎ ¹®ÀÚÀÇ À¯»çµµ)
       d(s1+ch1, s2) + 1, (s1¿¡ ch1ÀÌ »ðÀÔµÈ °Í°ú s2¿ÍÀÇ À¯»çµµ + 1)
       d(s1, s2+ch2) + 1 ) (s2¿¡ ch2°¡ »ðÀÔµÈ °Í°ú s2¿ÍÀÇ À¯»çµµ + 1)
(ÀÌ Áß ÃÖ¼Ò°ªÀ» ¼±ÅÃÇÏ°Ô µÈ´Ù.)

óÀ½ µÎ°³ÀÇ ±ÔÄ¢¿¡ ´ëÇØ¼­´Â ¸í¹éÇÑ »ç½ÇÀ̹ǷÎ, ¸¶Áö¸· Çϳª¿¡ ´ëÇÑ °í¹Î¸¸ÀÌ ÇʼöÀûÀÌ´Ù. ¿©±â ÅÖºó ¹®ÀÚ¿­ÀÌ ¾Æ´Ñ, ¼­·Î ¸¶Áö¸· ¹®ÀÚ¸¦ °¡Áø °¢°¢ÀÇÀÇ ¹®ÀÚ ch1°ú ch2ÀÌ´Ù. ¾î¶»°Ôµç, ch1°ú ch2´Â s1+ch1°ú s2+ch2ÀÇ ÆíÁýÀ¸·Î ¼³¸íµÇ¾ß ÇÑ´Ù.

¸¸¾à ch1 °ú ch2 °¡ °°´Ù¸é, ±×µéÀº ¾Æ¹« ¹®Á¦¾øÀÌ ÀÏÄ¡µÉ ¼ö ÀÖ°í, Àüü ÆíÁý °Å¸®´Â d(s1,s2) ±×´ë·Î µÈ´Ù. ¸¸¾à ch1°ú ch2°¡ ´Ù¸£´Ù¸é, ch1Àº ch2·Î º¯°æµÇ¾î¾ß¸¸ ÇϹǷΠÀüüÀûÀÎ ºñ¿ëÀº d(s1,s2)+1 ÀÌ µÈ´Ù. ´Ù¸¥ °¡´É¼ºÀº ch1ÀÌ »èÁ¦µÇ°í, s1 °ú s2+ch2ÀÌ ÆíÁýµÇ¾î d(s1,s2+ch2)+1 ÀÌ µÇ´Â °ÍÀÌ´Ù. ¸¶Áö¸· °¡´É¼ºÀº s1+ch1 ÀÌ s2¿Í ÆíÁýÀÌ µÇ°í ch2°¡ »ðÀÔÀÌ µÇ¾î d(s1+ch1,s2)+1ÀÌ µÇ´Â °ÍÀÌ´Ù. ´Ù¸¥ ´ë¾ÈÀº ¾ø´Ù. ¿ì¸®´Â ÀÌ °¡´É ´ë¾È Áß ÃÖ¼Ò ºñ¿ëÀ» ¼±ÅÃÇÏ¸é µÈ´Ù.

ÀÌ ¹Ýº¹ÀûÀÎ °ü°è´Â ¸í¹éÈ÷ »ïÁß Àç±Í·Î ´Ã¾î³­´Ù. O(3^n) À̰ÍÀº ±âÇϱ޼öÀûÀ¸·Î ´À·ÁÁö°í ¸Å¿ì ÀûÀº ¹®ÀÚµé ÀÌ»óÀÇ ¹®ÀÚ¿­¿¡¼­´Â ºñ½Ç¿ëÀûÀ̱⠶§¹®¿¡ ÁÁÀº ¹æ¹ýÀÌ ¾Æ´Ï´Ù.

ÀÌ °ü°èµéÀÇ »ç·Ê´Â d(s1,s2)´Â d(s1',s2')¿¡ ´ëÇØ s1'ÀÌ s1º¸´Ù ª°Å³ª, s2'´Â s2º¸´Ù ª°Å³ª, ȤÀº µÑ ´Ù¿¡ ÀüÀûÀ¸·Î ÀÇÁ¸ÇÏ´Â °ÍÀ» º¸¿©ÁØ´Ù. À̰ÍÀº µ¿Àû °èȹ¹ý ³ëÇϿ찡 »ç¿ëµÇ´Â °ÍÀ» µû¸¥´Ù.

ÀÌÂ÷¿ø ¹è¿­ m[|s1|][|s2|]Àº ÆíÁý°Å¸®°ª °íÁ¤¿¡ ÀÌ¿ëµÈ´Ù.

m[i,j] = d(s1[1..i], s2[1..j])

m[0][0] = 0
m[i][0] = i, i=1..|s1|
m[0][j] = j, i=1..|s2|

m[i][j] = min( m[i-1][j-1] + s1[i] != s2[j] , 
               m[i-1][j] + 1,
               m[i][j-1] + 1 ), i=1..|s1|, j=1..|s2|
m[][]Àº ¼øÂ÷ÀûÀ¸·Î °è»êµÈ´Ù. i¹øÂ° ÁÙÀº i-1¹øÂ° ÁÙ¿¡ ÀÇÁ¸µÈ´Ù. ÀÌ ¾Ë°í¸®ÁòÀÇ ½Ã°£º¹Àâµµ´Â O(|S1|*|S2|)ÀÌ´Ù. ¸¸¾à s1°ú s2°ú ºñ½ÁÇÑ ±æÀÌ nÀ̶ó¸é, ½Ã°£º¹Àâµµ´Â O(n^2)·Î ±âÇϱ޼öº¸´Ù ÁÁ¾ÆÁö°Ô µÈ´Ù!
¿ø¹® : http://www.csse.monash.edu.au/~lloyd/tildeAlgDS/Dynamic/Edit/
¹ø¿ª : pl0892029 

[ȨÀ¸·Î]  [µÚ ·Î]