String์ reverse()์ ๊ฐ์ ๋ฉ์๋๋ฅผ ์ ๊ณตํ๋ฉด ์ข์ผ๋ จ๋ง, ์์ฝ๊ฒ๋ Java์ String์์๋ ์ด๋ฐ ๋ฉ์๋๋ฅผ ์ ๊ณตํ์ง ์๋๋ค.๐ฅฒ๋คํํ๋, StringBuilder ํด๋์ค์์๋ ์ ์ฅ๋์ด ์๋ String์ ๋ค์ง๋ reverse() ๋ฉ์๋๋ฅผ ์ ๊ณตํ๊ธฐ ๋๋ฌธ์ ์ด
๋ง ๊ทธ๋๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ๋งฅ๋ฝ(context), ์ฆ ํ์ฌ ์ํ๋ฅผ ์๋ฏธํ๋ค.Context ํด๋์ค๋ ์ถ์ ํด๋์ค๋ก ๋์ด์๊ณ , Application, Activity, Service๋ ์ด Context๋ฅผ ์์๋ฐ์ Context์ ๊ธฐ๋ฅ๋ค์ ์ด์ฉํ๋ค.๐ง ๊ทธ๋์ context๋ก
Kotlin์ ๋ฐฐ์ด์ ์ ๋ ฌ์ ์ค๋ฆ์ฐจ์๊ณผ ๋ด๋ฆผ์ฐจ์ ๋ชจ๋ sort()๋ sortDescending()์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋๋ฐJava๋ ๋ฐฐ์ด์ ๋ด๋ ์์์ ์๋ฃํ์ด primitive type์ธ์ง reference type์ธ์ง์ ๋ฐ๋ผ์ ๋ด๋ฆผ์ฐจ์ ๋ฐฉ๋ฒ์ ์ฐจ์ด๊ฐ ์๊ธด๋ค.์ค๋ฆ์ฐจ์์
์๋๋ก์ด๋ ํ๋ก์ ํธ๋ฅผ ํ๋ค๋ณด๋ฉด ์๋ฒ(remote)์ ํต์ ํด์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์ค๊ฑฐ๋ ๋ก์ปฌ(room)์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์จ๋ค. ์ด๋ xDto ํด๋์ค๋ xDao ํด๋์ค, ๊ทธ๋ฆฌ๊ณ entity๋ฅผ ๋ง๋๊ฒ ๋๋๋ฐ, ์ ์ง ๋ชจ๋ฅด๊ฒ ์ด ๊ฐ๋ ๋ค์ด ์๊พธ ํท๊ฐ๋ฆฌ๊ณ ๋ฐ๋ก ๋ ์ค๋ฅด์ง ์์์ ํ
๋ฌธ์ ๋งํฌ๊ฐ๋ฅํ (i, j, k)์ ๋ชจ๋ ์์์์ ์กฐํฉ์ ์ฌ์ฉํด์ ๊ตฌํ๋ค.1์์ ๊ตฌํ ์์์์ผ๋ก ai < aj, ai > ak์ธ ๊ฒฝ์ฐ ์์๋๋ก ์ถ๋ฐํ ์ ์์ผ๋ฏ๋ก, answer๋ฅผ 1 ์ฆ๊ฐ์ํจ๋ค.์ด ๋ฌธ์ ์์ ์ ๋ ฅ๊ฐ ๋ฒ์๊ฐ 3 ์ด์ 5000 ์ดํ์ธ๋ฐ,ijk ์์์์
๋ฌธ์ ๋งํฌStack์ ์ฌ์ฉํด์ ๋ฌธ์ ๋ฅผ ํ์๋ค.numbers๋ฅผ ์ํํ ๋, ํ์ฌ ์ฒ๋ฆฌํ๋ ค๋ ๊ฒ์ โ์ด ์(number)๋ฅผ ๋ทํฐ์๋ก ๊ฐ์ง๋ ์ซ์ ๊ตฌํ๊ธฐโ ์ด๋ค.stack์๋ ์ด์ ์ ์ธ๋ฑ์ค ์ค์ ์์ง ๋ท ํฐ์๋ฅผ ์ฐพ์ง ๋ชปํ ์ธ๋ฑ์ค๋ค์ด ์ธ๋ฑ์ค๊ฐ ํฐ ์์ผ๋ก ๋ด๊ฒจ์๋ค. ๊ทธ๋ฆฌ๊ณ , ์
ย ์ฐ์ ์์๊ฐ ๋ถ์ฌ๋ ์ฌ๋ฌ๊ฐ์ง ๋ฐ์ดํฐ๋ค ์ค์์ ์ฐ์ ์์๊ฐ ๊ฐ์ฅ ๋์ ๊ฐ์ ๊ฐ๋จํ๊ณ ํจ์จ์ ์ด๊ฒ ์ป๊ณ ์ถ์ ๋ java.util ํจํค์ง์์ ์ ๊ณตํ๋ PriorityQueue๋ฅผ ์์ฃผ ์ฌ์ฉํ๋ค.ย int์ String๊ฐ์ด ์๋ฐ์์ ์ ๊ณตํ๋ ์๋ฃํ๊ฐ์ ๊ฒฝ์ฐ์๋ ํน๋ณํ ๊ฒฝ์ฐ๊ฐ ์
๐ N๊น์ง ์์ฐ์ ์ค ์์ ์ฐพ๊ธฐ
<style>์ ์ ์ฉํด์ ์ํ๋ ๋ชจ์์ ImageView๋ฅผ ๋ง๋ค์ด๋ผ ์ ์๋ View์ด๋ค.themes.xml์ ImageView์ ๋ชจ์๋ฆฌ๋ฅผ ์ผ๋ง๋ ๋ฅ๊ธ๊ฒ ํ ๊ฒ์ธ์ง ์ ์ํ๋ค.cornerFamily๋ก ์ด๋ค ๋ชจ์์ผ๋ก ๋ง๋ค ๊ฒ์ธ์ง ์ง์ ํ๋ค. ๊ฐ์ผ๋ก๋ "cut"๊ณผ "ro
๋ฌธ์ ๋งํฌ๋ชจ๋ ์ฌํ๋ค์ ๋ํด ์ธ์ ํ ์นธ๊ณผ ๊ตํํด๋ณด๋ Brute Force ๋ฐฉ์์ผ๋ก ๋ฌธ์ ๋ฅผ ํ์๋ค.์ด๋ ๊ฒ ๋ฌธ์ ๋ฅผ ํ๋ฉด O(N^2 4 2N) = O(N^3)์ ์๊ฐ๋ณต์ก๋์ง๋ง, n์ ์ต๋๊ฐ์ด 50์ด๊ธฐ ๋๋ฌธ์ ์ด ๋ฐฉ์์ผ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์๋ค.๋ชจ๋ ์ฌํ๋ค์ ์ํํ๋ค.
๋ฌธ์ ๋งํฌ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ์ผ๋ก ๋ฌธ์ ๋ฅผ ํ์๋ค.์ ๋ ฅ์ผ๋ก ๋ฐ์ ์ซ์๋ค์ ๋ฐฐ์ด input์ ๋ด๊ณ , 2์ฐจ์ dp table์ ๋ง๋ค์๋ค.1\. dp table ์ค์ dp\[i]\[0] : inputi์ ํฌํจํ์ง ์์์ ๋, input์ ์ธ๋ฑ์ค 0๋ถํฐ i๊น์ง๋ง ๋ดค์ ๋ ์ฐ์ํฉ์
๐ ๋ฌธ์ ๋ฌธ์ ๋งํฌ ๐ก ํ์ด ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ์ผ๋ก, ๋ถ๋ถ ๊ฒฐ๊ณผ๋ฅผ ์ด์ฐจ์ ๋ฐฐ์ด lcs์ ์ ์ฅํ๋ค. ์ ๋ ฅ๋ฐ์ ๋ ๋ฌธ์์ด ์ค ๋จผ์ ์ ๋ ฅ๋ฐ์ ๊ฒ์ S1, ๋๋ฒ์งธ๋ก ์ ๋ ฅ๋ฐ์ ๊ฒ์ S2๋ผ๊ณ ํ์ ๋ lcsi๋ฅผ S1๋ฅผ i๋ฒ์งธ ๋ฌธ์๊น์ง ์ฝ์ ๋ถ๋ถ ๋ฌธ์์ด๊ณผ S2๋ฅผ j๋ฒ์งธ ๋ฌธ์
์ ๊ท ํํ์(Regular Expressions)์ ๋ณต์กํ ๋ฌธ์์ด์ ํจํด/๊ท์น์ผ๋ก ํํํ์ฌ ์ฒ๋ฆฌํ๋ ๊ธฐ๋ฒ์ด๋ค. ์ ๊ท ํํ์์ ์ค์ฌ์ "์ ๊ท์"์ด๋ผ๊ณ ๋ ๋ถ๋ฅธ๋ค."๋ฉํ ๋ฌธ์"๋, ์๋ ๊ทธ ๋ฌธ์๊ฐ ๊ฐ์ง ๋ป์ด ์๋ ํน๋ณํ ์ฉ๋๋ก ์ฌ์ฉํ๋ ๋ฌธ์๋ฅผ ๋งํ๋ค.. : ๊ฐํ ๋ฌธ์(\\n
๋ฌธ์ ๋งํฌ๋ฌธ์์ด S์ ์๋ ๋ชจ๋ ๋ฌธ์๋ค์ ์ํํ๋ฉด์ (i-1)๋ฒ์งธ ๋ฌธ์๊ฐ 'I'์ธ ๊ฒฝ์ฐ์๋ง index(i ~ i+2n)์ substring์ด Pn์ ๋ง์กฑํ๋์ง ํ์ธํ๋ค.์ฌ๊ธฐ์ ๋์ ์ค์๋ substring๊ณผ Pn์ ๋น๊ตํ๋ ๊ณผ์ ์์, Pn์ ๋ฌธ์์ด์ ๊ธธ์ด๊ฐ M์ด๋ผ๋ ๊ฐ
Map์์ key์ ํด๋นํ๋ value๋ฅผ ๊ฐ์ ธ์ค๋๋ฐ, ๋ง์ฝ ํด๋น key๊ฐ Map์ ์กด์ฌํ์ง ์์ ๋ ๊ฐ์ ธ์ฌ ๊ธฐ๋ณธ๊ฐ์ ์ ํ ์ ์๋ ๋ฉ์๋ \-> defaultValue๋ก null์ ์ง์ ํ์ง ์๋ ์ด์ !!์ ์ฌ์ฉํ ํ์๊ฐ ์์ด์ง๋ค.์์)์ค์ํ์ธ ์ซ์๋ฅผ ์์์ ๋ฐ n์๋ฆฌ
AAC ViewModel ์ธ์คํด์ค๋ฅผ ์์ฑํ ๋ ์ฌ๋ฌ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋๋ฐ ๊ทธ ์ค delegate pattern์ ์ ์ฉํ ๋ฐฉ๋ฒ์ธ by viewModels์ by activityViewModelsํค์๋๋ก ์์ฑํ๋ ค๊ณ ํ๋ค.์ด ํค์๋๋ค์ ์ฌ์ฉํ๋ ค๋ฉด build.gradle์ ๋ค์๊ณผ
๋ชจ๋ ์๋ณธ์ ํ๊ดดํ์ง๋ ์๋๋ค.String์ ์๋ ์๋ฌธ์๋ค์ ๋ชจ๋ ๋๋ฌธ์๋ก ๋ณํํ๋ค.์์)๋๋ฌธ์์ธ ๋ฌธ์ ํ๋๋ฅผ ์๋ฌธ์๋ก ๋ณํํ๋ค.์๋ฌธ์์ธ ๋ฌธ์ ํ๋๋ฅผ ๋๋ฌธ์๋ก ๋ณํํ๋ค.์์)prefix๋ฅผ ๋ผ์ด๋ธ String์ ๋ฐํString์ ์์์ด prefix์ ์ผ์นํ์ง ์์ผ๋ฉด ์๋ณธ
๋ฌธ์ ๋งํฌinput์ผ๋ก ์ฃผ์ด์ง wires๋ฅผ ์ํํ๋ฉด์ ์ธ์ ๋ฆฌ์คํธ๋ก ํธ๋ฆฌ๋ฅผ ๊ตฌ์ฑํ๋ค.wires๋ฅผ ์ํํ๋ฉด์ ํด๋น wire๋ฅผ ์ ๊ฑฐํ์ ๋ ๋๋ ๋ ์ ๋ ฅ๋ง์ด ๊ฐ์ง๊ณ ์๋ ์ก์ ํ์ ๊ฐ์ ์ฐจ์ด๋ฅผ ๊ตฌํ๊ณ , answer๋ณด๋ค ์์ผ๋ฉด answer๋ฅผ ๊ฐฑ์ ํ๋ค.ย ย \-> ์ด๋ ์ ๋ ฅ๋ง์ด ๊ฐ
๋ฌธ์ ๋งํฌย ย ย ์์ ํ์์ผ๋ก ํ๊ฒ ๋๋ฉด ๋์ ์ ๊ฐ์๋ฅผ N์ด๋ผ๊ณ ํ ๋, ๋์ ์ ๋ฐฉ๋ฌธํ๋ ์์์ ๋ชจ๋ ๊ฒฝ์ฐ์ ์ N!๋งํผ ๊ณ์ฐ์ ํด์ผํ๋ค. -> O(N!)ย ย ย ๊ทธ๋ฐ๋ฐ ๋ฌธ์ ์์ ๊ฐ๋ฅํ ๋์ ์ ์ต๋ ๊ฐ์๋ 8๊ฐ์ด๊ธฐ ๋๋ฌธ์ ์๋ฌด๋ฆฌ ๋๋ ค๋ O(8!)๋งํผ์ ์๊ฐ๋ณต์ก๋๋ฐ์ ๋์ค์ง
Array๋ List๋ฅผ ์ํ๋ ๊ตฌ๊ฐ๋ง ์๋ผ์ ์๋ก์ด List๋ฅผ ๋ง๋ค๊ณ ์ถ์ ๋ ์ฌ์ฉ์๋ณธ ๊ฐ์ฒด๋ ๋ณ๊ฒฝ๋์ง ์๋๋ค.์์)Array๋ฅผ ์ํ๋ ๊ตฌ๊ฐ๋ง ์๋ผ์ ์๋ก์ด Array๋ฅผ ๋ง๋ค๊ณ ์ถ์ ๋ ์ฌ์ฉ. Array.slice(), sliceArray() ๋ด๋ถ์์ ํธ์ถ๋๋ ๋ฉ์๋์