Àç±Í·Î n¹øÂ° ÇǺ¸³ªÄ¡ ¼ö ¸®ÅÏÇϱâ(¼³¸í) [1892 / 0764] Time Limit(Test case) : (ms) Number of users who solved : 0 Total Tried : 0 The Champion of this Problem (C++) : N/A My Best Submission (C++) : N/A [koistudy.net (T. HS Jeon 2017)] Background *ÁÖÀÇ»çÇ× : ÀÌ ¹®Á¦´Â Àç±Í ¼³°è ¹®Á¦·Î¼­ ¹Ýº¹¹®À» »ç¿ëÇÑ ÄÚµå´Â äÁ¡ÀÌ µÇÁö ¾Ê½À´Ï´Ù. ------ ÇÑ Á¤¼ö nÀ» ÀÔ·Â¹Þ¾Æ n¹øÂ° ÇǺ¸³ªÄ¡ ¼ö¸¦ Ãâ·ÂÇϽÿÀ. (´Ü, ¹Ýº¹¹®Àº »ç¿ëÇÒ ¼ö ¾ø´Ù.) Âü°í ÇÁ·Î±×·¡¹Ö¾ð¾î¿¡¼­ÀÇ Àç±Í ÇÔ¼ö´Â? - ÇÔ¼ö¸¦ Á¤ÀÇÇÒ ¶§, ÀÚ±â ÀÚ½ÅÀ» È£ÃâÇØ »ç¿ëÇÏ´Â ÇüÅ·ΠÁ¤ÀÇµÈ ÇÔ¼ö¶ó°í ÇÒ ¼ö ÀÖÀ¸¸ç - 3°¡Áö Á¾·ù¿Í 2°¡Áö ¹æÇâÀ¸·Î Å©°Ô ±¸ºÐÁö¾î »ý°¢ÇØ º¼ ¼ö ÀÖ´Ù. - 3°¡Áö Á¾·ù : ´Ü¼ø/´ÙÁß/º¹ÇÕ - 2°¡Áö ¹æÇâ : ÇÏÇâ½Ä/»óÇâ½Ä ´ÙÁß Àç±Í´Â? ÇÔ¼ö¸¦ Á¤ÀÇÇÏ´Â µµÁß¿¡ ÀÚ±â ÀÚ½ÅÀ» 2¹ø ÀÌ»ó È£ÃâÇÏ´Â ¹æ¹ýÀÌ´Ù. ÇÏÇâ½Ä ¹æ¹ýÀº? Å« ¹®Á¦ÀÇ ´äÀ» ¾ò±â À§Çؼ­ ÀÌÀü¿¡ ¾ò¾î³½ °°Àº ÇüÅÂÀÇ º¸´Ù ÀÛÀº ¹®Á¦ÀÇ ÇØ°á °á°ú¸¦ ÀÌ¿ëÇÏ´Â ¹æ¹ýÀÌ´Ù. n¹øÂ° ÇǺ¸³ªÄ¡ ¼ö¸¦ Ãâ·ÂÇÏ´Â ¹®Á¦´Â ´ÙÀ½°ú °°Àº ´ÙÁß Àç±Í ÇÏÇâ½Ä ¹æ¹ýÀ¸·Î ¼³°èÇÏ¿© ÇØ°áÇÒ ¼ö ÀÖ´Ù. n¹øÂ° ÇǺ¸³ªÄ¡ ¼ö¸¦ °è»êÇÏ´Â ¹®Á¦ÀÇ ÇÏÇâ½Ä Àç±Í ¼³°è ¹æ¹ý(¿¹½Ã) - ÇÏÇâ½Ä n¹øÂ° ÇǺ¸³ªÄ¡ ¼ö¸¦ °è»êÇÏ´Â ¹®Á¦´Â (n-2)¹øÂ° ÇǺ¸³ªÄ¡ ¼ö¿Í (n-1)¹øÂ° ÇǺ¸³ªÄ¡ ¼ö¸¦ ±¸ÇÑ »óÅ¿¡¼­ ±× ÇÕÀ» ±¸ÇÏ´Â ¹®Á¦·Î ¹Ù²Ü ¼ö ÀÖ´Ù. ... 2¹øÂ° ÇǺ¸³ªÄ¡ ¼ö´Â 1ÀÌ´Ù. 1¹øÂ° ÇǺ¸³ªÄ¡ ¼ö´Â 1ÀÌ´Ù. Àç±Í ÇÔ¼ö¸¦ Á¤È®ÇÏ°Ô ¼³°èÇϱâ À§Çؼ­´Â 1. °¡Àå ¸ÕÀú! : ÀÚ½ÅÀÌ ¸¸µé°íÀÚÇÏ´Â ¡°Àç±Í ÇÔ¼öÀÇ Àǹ̡±¸¦ ¸íÈ®ÇÏ°Ô »ý°¢ÇÑ ÈÄ, 2. ±× ´ÙÀ½¿¡ : ¡°Å« ¹®Á¦¿Í ÀÛÀº ¹®Á¦ »çÀÌÀÇ °ü°è(ÇÏÇâ½Ä)¡±³ª ¡°ÇöÀç »óÅ¿¡¼­ ´ÙÀ½ »óÅ·ÎÀÇ º¯È­°ü°è(»óÇâ½Ä)¡±¿Í °°Àº °ü°è¸¦ ºÐ¼®ÇØ ÀÛ¼ºÇϰí, 3. ¸¶Áö¸·¿¡ : ¡°°¡Àå ÀÛÀº ¹®Á¦ »óÅ¡±³ª ¡°°¡Àå Å« ¹®Á¦ »óÅ¡±¸¦ »ý°¢ÇØ Àç±Í È£ÃâÀÇ Áß´Ü Á¶°Ç°ú ±× »óÅ¿¡¼­ÀÇ ¸®ÅÏ °ªÀ» ÀÛ¼ºÇØ ³ÖÀ¸¸é µÈ´Ù. n¹øÂ° ÇǺ¸³ªÄ¡ ¼ö¸¦ °è»êÇÏ´Â ¹®Á¦¿¡ ´ëÇØ¼­ ÇÏÇâ½Ä Àç±Í ¼³°è ¹æ¹ýÀ» Àû¿ëÇØ º»´Ù¸é, 1. f(n)À» n¹øÂ° ÇǺ¸³ªÄ¡ ¼ö¶ó°í »ý°¢(Á¤ÀÇ)ÇÑ´Ù. ±×·¯¸é, f(k)´Â k¹øÂ° ÇǺ¸³ªÄ¡ ¼öÀ̰í, k¹øÂ° ÇǺ¸³ªÄ¡ ¼ö¸¦ ±¸ÇÏ´Â ¹®Á¦´Â, (k-2)¹øÂ° ÇǺ¸³ªÄ¡ ¼ö¿Í (k-1)¹øÂ° ÇǺ¸³ªÄ¡ ¼ö¸¦ ÀÌ¹Ì ±¸ÇÑ »óÅ¿¡¼­ ±× ÇÕÀ» Ãâ·ÂÇÏ´Â ¹®Á¦·Î ¹Ù²Ù°í ÀϹÝÈ­ ½Ãų ¼ö ÀÖ´Ù. f(k) = f(k-2)+f(k-1) ÇÔ¼ö È£Ãâ À§Ä¡¿¡ ¸®ÅÏÇÏ´Â °ªÀÌ Á¤¼ö °ªÀ̹ǷÎ, Á¤¼öÇü(int, long long int) ÇÔ¼ö·Î ¼³°èÇØ¾ß ÇÑ´Ù. 2. 1.¿¡¼­ ¸¸µç ¸íÈ®ÇÑ Á¤ÀÇ¿Í Å« ¹®Á¦¸¦ º¸´Ù ÀÛÀº ¹®Á¦·Î ¹Ù²Ù´Â °ü°è¸¦ ÀÌ¿ëÇØ ÇÔ¼ö·Î ÀÛ¼º(¼³°è)ÇÑ´Ù. long long f(int k) //k¹øÂ° ÇǺ¸³ªÄ¡ ¼ö¸¦ ±¸ÇÏ´Â ¹®Á¦´Â { return f(k-2)+f(k-1); //(k-2)¹øÂ° ÇǺ¸³ªÄ¡¼ö¿Í (k-1)¹øÂ° ÇǺ¸³ªÄ¡¼ö¸¦ ÇÕÇÑ °ªÀÌ´Ù. } ÀÌ·¸°Ô Å« ¹®Á¦¸¦ ÇØ°áÇϱâ À§ÇØ, º¸´Ù ÀÛÀº ¹®Á¦¸¦ ÇØ°áÇÑ °á°ú¸¦ ÀÌ¿ëÇϵµ·Ï ¸¸ ÀÛ¼ºÇÏ¸é ¹«ÇÑ Àç±Í È£Ãâ »óÅ¿¡¼­ ºüÁ®³ª¿ÀÁö ¸øÇϱ⠶§¹®¿¡ Àç±Í È£ÃâÀ» ÁߴܽÃ۱â À§ÇÑ Áß´Ü Á¶°Ç°ú ó¸®ÇؾßÇÒ ÀÛ¾÷À» Ãß°¡·Î ÀÛ¼ºÇØ ³Ö¾î¾ß ÇÑ´Ù. 3. 2.¿¡¼­ ¸¸µç ÇÔ¼ö¿¡ Àç±Í È£Ãâ Áß´Ü Á¶°Ç°ú ¸®ÅÏÇØ¾ß ÇÒ °ªÀ» Ãß°¡ÇÑ´Ù. °¡Àå óÀ½ ½ÃÀÛÇϴ ù ¹øÂ° ÇǺ¸³ªÄ¡ ¼ö¸¦ 1, µÎ ¹øÂ° ÇǺ¸³ªÄ¡ ¼ö¸¦ 2¶ó°í Çϸé, ´ÙÀ½°ú °°Àº Àç±Í È£Ãâ Áß´Ü Á¶°ÇÀ» Ãß°¡ÇÒ ¼ö ÀÖ´Ù. (ÇÔ¼ö È£Ãâ Áß´Ü ½Ã¿¡´Â ÀÌÀü À§Ä¡¿¡ µ¹·Á´Ù ³õ´Â °ªÀ» return °ª; À¸·Î ÀÛ¼ºÇØ¾ß ÇÑ´Ù.) long long f(int k) //k¹øÂ° ÇǺ¸³ªÄ¡ ¼ö¸¦ ±¸ÇÏ´Â ¹®Á¦´Â { if(k <= 2) return 1; //ù ¹øÂ°¿Í µÎ ¹øÂ° ÇǺ¸³ªÄ¡ ¼ö´Â 1ÀÌ´Ù.(ºÎµî½ÄÀÌ ¾ÈÁ¤Àû) return f(k-2)+f(k-1); } ¿Í °°ÀÌ ¾î¶² »óűîÁö¸¸ Àç±ÍÀûÀ¸·Î È£ÃâµÇ´Â Àç±Í ÇÔ¼ö¸¦ ¿Ï¼º½Ãų ¼ö ÀÖ´Ù. À§¿Í °°Àº »ý°¢°ú ÇÔ¼ö ¼³°è °úÁ¤À» ÅëÇØ, f(n)À» È£ÃâÇÏ¿© n¹øÂ° ÇǺ¸³ªÄ¡ ¼ö¸¦ Ãâ·ÂÇÏ´Â ¿¹½ÃÄÚµå´Â ´ÙÀ½°ú °°ÀÌ ÀÛ¼ºÇÒ ¼ö ÀÖ´Ù. #include int n; long long int f(int k) { if(k <= 2) return 1; return f(k-2)+f(k-1); } int main() { scanf("%d", &n); printf("%lld\n", f(n)); } Input int Çü Á¤¼ö(n) 1°³°¡ ÀԷµȴÙ. (1 <= n <= 30) Output n ¹øÂ° ÇǺ¸³ªÄ¡ ¼ö¸¦ Ãâ·ÂÇÑ´Ù. IO Example ÀÔ·Â 6 Ãâ·Â 8