{"id":33510,"date":"2024-11-01T09:17:18","date_gmt":"2024-11-01T09:17:18","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=33510"},"modified":"2024-11-01T11:38:14","modified_gmt":"2024-11-01T11:38:14","slug":"java-coding-test-course-longest-common-subsequence-finding","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/33510\/","title":{"rendered":"Java Coding Test Course, Longest Common Subsequence Finding"},"content":{"rendered":"<p><body><\/p>\n<p>In this course, we will discuss the problem of &#8220;Longest Common Subsequence (LCS)&#8221;, which is frequently encountered in coding tests. The LCS problem involves finding the longest common subsequence that can be formed by preserving the relative order of elements in both sequences when given two sequences.<\/p>\n<h2>Problem Description<\/h2>\n<p>Given two strings <code>str1<\/code> and <code>str2<\/code>, find the length of the longest common subsequence of these two strings.<\/p>\n<h3>Input<\/h3>\n<ul>\n<li>String <code>str1<\/code> : &#8220;AGGTAB&#8221;<\/li>\n<li>String <code>str2<\/code> : &#8220;GXTXAYB&#8221;<\/li>\n<\/ul>\n<h3>Output<\/h3>\n<p>Length of the longest common subsequence : 4<\/p>\n<h2>Problem Solving Process<\/h2>\n<p>To solve this problem, we will use the dynamic programming approach. Dynamic programming is a method for solving problems by breaking them down into smaller subproblems and storing the results to efficiently solve the problem.<\/p>\n<h3>Step 1: Initialize the Two-Dimensional Array<\/h3>\n<div class=\"algorithm-step\">\n<p>Create a two-dimensional array <code>dp<\/code> based on the lengths of strings <code>str1<\/code> and <code>str2<\/code>. The size of this array is <code>(m+1) x (n+1)<\/code>, where<\/p>\n<ul>\n<li><code>m<\/code> : length of <code>str1<\/code><\/li>\n<li><code>n<\/code> : length of <code>str2<\/code><\/li>\n<\/ul>\n<p>Each element of the array is initialized to 0.<\/p>\n<\/div>\n<h3>Step 2: Fill the Two-Dimensional Array<\/h3>\n<div class=\"algorithm-step\">\n<p>Now we will fill the two-dimensional array <code>dp<\/code>. We will proceed by comparing each character of the strings.<\/p>\n<ol>\n<li>Use a loop to compare each character.<\/li>\n<li>If the characters are the same, set <code>dp[i][j] = dp[i-1][j-1] + 1<\/code>.<\/li>\n<li>If the characters are different, set <code>dp[i][j] = Math.max(dp[i-1][j], dp[i][j-1])<\/code>.<\/li>\n<\/ol>\n<p>Ultimately, the value of <code>dp[m][n]<\/code> will be the length of the longest common subsequence.<\/p>\n<\/div>\n<h3>Step 3: Implement the Code<\/h3>\n<p>Now let&#8217;s implement this process in Java code.<\/p>\n<pre><code>\npublic class LongestCommonSubsequence {\n    public static int lcs(String str1, String str2) {\n        int m = str1.length();\n        int n = str2.length();\n        int[][] dp = new int[m + 1][n + 1];\n\n        for (int i = 1; i &lt;= m; i++) {\n            for (int j = 1; j &lt;= n; j++) {\n                if (str1.charAt(i - 1) == str2.charAt(j - 1)) {\n                    dp[i][j] = dp[i - 1][j - 1] + 1;\n                } else {\n                    dp[i][j] = Math.max(dp[i - 1][j], dp[i][j - 1]);\n                }\n            }\n        }\n\n        return dp[m][n];\n    }\n\n    public static void main(String[] args) {\n        String str1 = \"AGGTAB\";\n        String str2 = \"GXTXAYB\";\n        System.out.println(\"Length of the longest common subsequence: \" + lcs(str1, str2));\n    }\n}\n    <\/code><\/pre>\n<h2>Code Analysis<\/h2>\n<p>The code above operates in the following manner.<\/p>\n<ul>\n<li>It takes two strings as input and creates a <code>dp<\/code> array based on their lengths.<\/li>\n<li>Using a nested loop, it compares the strings and updates values using the dynamic programming method.<\/li>\n<li>The output provides the length of the longest common subsequence.<\/li>\n<\/ul>\n<h2>Execution Result<\/h2>\n<div class=\"example\">\n<p><strong>Input:<\/strong> <code>str1 = \"AGGTAB\"<\/code>, <code>str2 = \"GXTXAYB\"<\/code><\/p>\n<p><strong>Output:<\/strong> Length of the longest common subsequence: <code>4<\/code><\/p>\n<\/div>\n<h2>Conclusion<\/h2>\n<p>In this lecture, we learned how to find the longest common subsequence. We demonstrated how effective it can be to use dynamic programming techniques to solve algorithmic problems. This problem can be applied in various fields and is fundamental knowledge to have when solving algorithm problems.<\/p>\n<p>Furthermore, you can experiment with other string combinations based on the code shared in this lecture, deepening your understanding of the theory. I hope this will greatly assist you in developing your algorithm problem-solving skills.<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this course, we will discuss the problem of &#8220;Longest Common Subsequence (LCS)&#8221;, which is frequently encountered in coding tests. The LCS problem involves finding the longest common subsequence that can be formed by preserving the relative order of elements in both sequences when given two sequences. Problem Description Given two strings str1 and str2, &hellip; <a href=\"https:\/\/atmokpo.com\/w\/33510\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;Java Coding Test Course, Longest Common Subsequence Finding&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[139],"tags":[],"class_list":["post-33510","post","type-post","status-publish","format-standard","hentry","category-java-coding-test"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Java Coding Test Course, Longest Common Subsequence Finding - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/atmokpo.com\/w\/33510\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Java Coding Test Course, Longest Common Subsequence Finding - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"In this course, we will discuss the problem of &#8220;Longest Common Subsequence (LCS)&#8221;, which is frequently encountered in coding tests. The LCS problem involves finding the longest common subsequence that can be formed by preserving the relative order of elements in both sequences when given two sequences. Problem Description Given two strings str1 and str2, &hellip; \ub354 \ubcf4\uae30 &quot;Java Coding Test Course, Longest Common Subsequence Finding&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/33510\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:17:18+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T11:38:14+00:00\" \/>\n<meta name=\"author\" content=\"root\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:site\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:label1\" content=\"\uae00\uc4f4\uc774\" \/>\n\t<meta name=\"twitter:data1\" content=\"root\" \/>\n\t<meta name=\"twitter:label2\" content=\"\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04\" \/>\n\t<meta name=\"twitter:data2\" content=\"2\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/atmokpo.com\/w\/33510\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/33510\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"Java Coding Test Course, Longest Common Subsequence Finding\",\"datePublished\":\"2024-11-01T09:17:18+00:00\",\"dateModified\":\"2024-11-01T11:38:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/33510\/\"},\"wordCount\":368,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"Java Coding Test\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/33510\/\",\"url\":\"https:\/\/atmokpo.com\/w\/33510\/\",\"name\":\"Java Coding Test Course, Longest Common Subsequence Finding - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:17:18+00:00\",\"dateModified\":\"2024-11-01T11:38:14+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/33510\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/33510\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/33510\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Java Coding Test Course, Longest Common Subsequence Finding\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/atmokpo.com\/w\/#website\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/atmokpo.com\/w\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"contentUrl\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"width\":400,\"height\":400,\"caption\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\"},\"image\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/bebubo4\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\",\"name\":\"root\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"caption\":\"root\"},\"sameAs\":[\"http:\/\/atmokpo.com\/w\"],\"url\":\"https:\/\/atmokpo.com\/w\/author\/root\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Java Coding Test Course, Longest Common Subsequence Finding - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/atmokpo.com\/w\/33510\/","og_locale":"ko_KR","og_type":"article","og_title":"Java Coding Test Course, Longest Common Subsequence Finding - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"In this course, we will discuss the problem of &#8220;Longest Common Subsequence (LCS)&#8221;, which is frequently encountered in coding tests. The LCS problem involves finding the longest common subsequence that can be formed by preserving the relative order of elements in both sequences when given two sequences. Problem Description Given two strings str1 and str2, &hellip; \ub354 \ubcf4\uae30 \"Java Coding Test Course, Longest Common Subsequence Finding\"","og_url":"https:\/\/atmokpo.com\/w\/33510\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:17:18+00:00","article_modified_time":"2024-11-01T11:38:14+00:00","author":"root","twitter_card":"summary_large_image","twitter_creator":"@bebubo4","twitter_site":"@bebubo4","twitter_misc":{"\uae00\uc4f4\uc774":"root","\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04":"2\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/atmokpo.com\/w\/33510\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/33510\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"Java Coding Test Course, Longest Common Subsequence Finding","datePublished":"2024-11-01T09:17:18+00:00","dateModified":"2024-11-01T11:38:14+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/33510\/"},"wordCount":368,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["Java Coding Test"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/33510\/","url":"https:\/\/atmokpo.com\/w\/33510\/","name":"Java Coding Test Course, Longest Common Subsequence Finding - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:17:18+00:00","dateModified":"2024-11-01T11:38:14+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/33510\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/33510\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/33510\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"Java Coding Test Course, Longest Common Subsequence Finding"}]},{"@type":"WebSite","@id":"https:\/\/atmokpo.com\/w\/#website","url":"https:\/\/atmokpo.com\/w\/","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","description":"","publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/atmokpo.com\/w\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/atmokpo.com\/w\/#organization","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","url":"https:\/\/atmokpo.com\/w\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/","url":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","contentUrl":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","width":400,"height":400,"caption":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8"},"image":{"@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/bebubo4"]},{"@type":"Person","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7","name":"root","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","caption":"root"},"sameAs":["http:\/\/atmokpo.com\/w"],"url":"https:\/\/atmokpo.com\/w\/author\/root\/"}]}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/33510","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/comments?post=33510"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/33510\/revisions"}],"predecessor-version":[{"id":33511,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/33510\/revisions\/33511"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=33510"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=33510"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=33510"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}