Search

๊ณ ํ˜„์„

2.๋ฌธ์ œ์ด๋ฆ„
3. ์ˆ˜ํ–‰์‹œ๊ฐ„[์ดˆ(s)]
1800
์ข‹์•„์š” ๋ˆ„๋ฅด๊ธฐ
์ข‹์•„์š” ์ˆ˜
: 0
5 more properties
| ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { static char[] s1; static char[] s2; static Integer[][] dp; public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); s1 = br.readLine().toCharArray(); s2 = br.readLine().toCharArray(); dp = new Integer[s1.length][s2.length]; System.out.println(lcs(s1.length-1, s2.length-1)); } public static int lcs(int idx1, int idx2) { if(idx1<0 || idx2<0) return 0; if(dp[idx1][idx2] == null) { dp[idx1][idx2] = 0; if(s1[idx1] == s2[idx2]) dp[idx1][idx2] = lcs(idx1-1, idx2-1)+1; else dp[idx1][idx2] = Math.max(lcs(idx1-1,idx2), lcs(idx1,idx2-1)); } return dp[idx1][idx2]; } }
Java
๋ณต์‚ฌ
| ์ฝ”๋“œ ์„ค๋ช…ํ•˜๊ธฐ
โ€ข
DynamicProgramming์˜ Top-Down ๋ฐฉ์‹์œผ๋กœ ํ•ด๊ฒฐ
โ€ข
LCS ๊ฐ’์„ ์ €์žฅํ•  ๋•Œ 0๊ณผ null์„ ๊ตฌ๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด ํ…Œ์ด๋ธ” type์„ Integer(๊ฐ์ฒด)๋กœ ์„ ์–ธ ๋ฐ ์ดˆ๊ธฐํ™”
โ€ข
Bottom-Up์œผ๋กœ๋Š” ์–ด๋–ป๊ฒŒ ํ’€์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค,,,