µÎ ¹è¿ÀÇ ÇÕ hint
ÀÔ·Â µ¥ÀÌÅÍ·Î ¼³¸íÀ» ÇÏ°Ú½À´Ï´Ù.
5
4
1 3 1 2
3
1 3 2
ready...
a[] -- ù ¹ø° ¹è¿
b[] -- µÎ ¹ø° ¹è¿
s1[] -- ù ¹ø° ¹è¿ÀÇ ´©Àû °ª ÀúÀå
s2[] -- µÎ ¹ø° ¹è¿ÀÇ ´©Àû °ª ÀúÀå
f1[] -- ù ¹ø° ¹è¿ÀÇ ºÎºÐ¹è¿·Î ³ª¿Ã¼ö ÀÖ´Â ¼öÀÇ ºóµµ¼ö¸¦ ÀúÀå
f2[] -- µÎ ¹ø° ¹è¿ÀÇ ºÎºÐ¹è¿·Î ³ª¿Ã¼ö ÀÖ´Â ¼öÀÇ ºóµµ¼ö¸¦ ÀúÀå
step1...O(n)
a[]
1 2 3 4
-------
1 3 1 2
b[]
1 2 3
-----
1 3 2
step2... O(n)
Â÷·Ê´ë·Î °¢ ¹è¿ÀÇ ´©Àû °ªÀ» ±¸ÇÕ´Ï´Ù.
s1[]
1 2 3 4
--------
1 4 5 7
s2[]
1 2 3
-----
1 4 6
step3. ... ÀÌ ºÎºÐ¿¡¼ O(n^2) ÀÔ´Ï´Ù.
a[] ¹è¿ 1 3 1 2 ¿¡¼ ³ª¿Ã¼ö ÀÖ´Â ºÎºÐ ¼ö¿À» º¸¸é (¿©±â¿¡¼ ¼ýÀÚ´Â ai ¸¦ ÀǹÌÇÕ´Ï´Ù.)
1 .. s1
2 .. s2 - s1
3 .. s3 - s2
4 .. s4 - s3
1+2 .. s2
2+3 .. s3 - s1
3+4 .. s4 - s2
1+2+3 .. s3
2+3+4 .. s4-s1
1+2+3+4 .. s4
Áï s4 ¿¡¼ s3 ,s2 , s1,s0 À» »« °ª
s3 ¿¡¼ s2 ,s1,s0 À» »« °ª
s2 ¿¡¼ s1,s0 À» »« °ª
s1 ¿¡¼ s0 À» »« °ª
¿©±â¿¡¼ s0 ´Â 0 ÀÔ´Ï´Ù.
ÀÌ °ªÀ» f1[] ¹è¿¿¡ ´©Àû ½Ãŵ´Ï´Ù. f1[i] ´Â ºÎºÐ¹è¿ÀÇ i ÀÇ °¡´ÉÇÑ È½¼ö ÀÔ´Ï´Ù.
¸¶Âù°¡Áö ¹æ¹ýÀ¸·Î f2[i] ¸¦ ±¸ÇÕ´Ï´Ù.
step4....O(t)
±¸ÇÏ°íÀÚ ÇÏ´Â ¼ö°¡ t À̸é
f1[i] * f2[t-i] ¸¦ ±¸ÇÏ¸é µË´Ï´Ù.