{"id":34980,"date":"2024-11-01T09:34:14","date_gmt":"2024-11-01T09:34:14","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=34980"},"modified":"2024-11-01T11:45:29","modified_gmt":"2024-11-01T11:45:29","slug":"kotlin-coding-test-course-bridge-building","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/34980\/","title":{"rendered":"kotlin coding test course, bridge building"},"content":{"rendered":"<div class=\"blog-post\">\n<p>This article will discuss the &#8220;Bridge Construction&#8221; problem, which is frequently encountered in coding tests using Kotlin. First, we will introduce the problem, explain the algorithm, and then implement the code to find the optimal solution.<\/p>\n<h2>Problem Description<\/h2>\n<p>The problem is as follows: We want to calculate the number of ways to move an object falling from the ceiling while maintaining the height of a bridge on which multiple laser beams are horizontally placed. The approach is to find similar forms of movement possibilities and implement a rotating table that maintains the height of the bridge.<\/p>\n<h3>Input<\/h3>\n<ul>\n<li>Integer N: Total length of the bridge (1 &lt;= N &lt;= 1000)<\/li>\n<li>Integer M: Number of obstacles on the bridge (0 &lt;= M &lt;= 100)<\/li>\n<li>For M lines, the position and height information of obstacles are given. Each line consists of two integers X and H, where X is the position of the obstacle (1 &lt;= X &lt;= N), and H is the height of the obstacle at that position.<\/li>\n<\/ul>\n<h3>Output<\/h3>\n<p>Returns the number of ways an object can travel on the bridge.<\/p>\n<h2>Problem Approach<\/h2>\n<p>To solve this problem, we first need a data structure to store the state of the bridge. It should be able to store whether an obstacle exists at each position of the bridge and its height. Typically, such problems can be solved using dynamic programming.<\/p>\n<h3>Step 1: Designing Data Structure<\/h3>\n<p>We can use an array to store the heights of the bridge. We will declare an array of length N for the bridge and set the obstacle heights as initial values at each position.<\/p>\n<h3>Step 2: Defining Movement Conditions<\/h3>\n<p>We can approach this in the form of dynamic programming by judging the conditions under which an object can move. The object must maintain a constant height based on the observed obstacle heights.<\/p>\n<h2>Code Implementation<\/h2>\n<p>Now, let&#8217;s implement the actual code based on these processes. Below is the code written in Kotlin:<\/p>\n<pre><code class=\"language-kotlin\">\nfun main() {\n    val n = readLine()!!.toInt()\n    val m = readLine()!!.toInt()\n    val heights = IntArray(n + 1)\n\n    for (i in 0 until m) {\n        val (x, h) = readLine()!!.split(\" \").map { it.toInt() }\n        heights[x] = h\n    }\n\n    var totalWays = 1\n    for (i in 1..n) {\n        if (heights[i] &gt; 0) {\n            totalWays *= (heights[i] + 1) \/\/ Includes obstacles\n        }\n    }\n\n    println(totalWays)\n}\n    <\/code><\/pre>\n<h2>Code Explanation<\/h2>\n<p>The above code takes input from the user for the length of the bridge N, the number of obstacles M, and the position and height of each obstacle, storing them in an array. It then calculates the possible number of ways based on the heights of the obstacles by iterating over each position. For each existing obstacle, it multiplies the number of possible ways by the corresponding height to derive the final result.<\/p>\n<h2>Results and Analysis<\/h2>\n<p>After executing the code above, we obtain all possible ways the object can progress on the bridge. This problem can be solved simply using an array, and the time complexity is optimized to O(N + M).<\/p>\n<h2>Conclusion<\/h2>\n<p>In this article, we covered the &#8220;Bridge Construction&#8221; problem using Kotlin. Solving algorithmic problems greatly enhances practical problem-solving skills. I encourage you to improve your skills by tackling various problems!<\/p>\n<h2>Additional Practice Problems<\/h2>\n<p>Furthermore, try the following additional practice problems by modifying this problem:<\/p>\n<ul>\n<li>A problem that calculates the number of ways that satisfy specific height conditions within a certain range instead of the height of obstacles<\/li>\n<li>Implement an algorithm to find the optimal path by increasing or decreasing the length of the bridge<\/li>\n<\/ul>\n<p>Through various approaches to problem-solving, I hope you further develop your skills!<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>This article will discuss the &#8220;Bridge Construction&#8221; problem, which is frequently encountered in coding tests using Kotlin. First, we will introduce the problem, explain the algorithm, and then implement the code to find the optimal solution. Problem Description The problem is as follows: We want to calculate the number of ways to move an object &hellip; <a href=\"https:\/\/atmokpo.com\/w\/34980\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;kotlin coding test course, bridge building&#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":[106],"tags":[],"class_list":["post-34980","post","type-post","status-publish","format-standard","hentry","category----en"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>kotlin coding test course, bridge building - \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\/34980\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"kotlin coding test course, bridge building - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"This article will discuss the &#8220;Bridge Construction&#8221; problem, which is frequently encountered in coding tests using Kotlin. First, we will introduce the problem, explain the algorithm, and then implement the code to find the optimal solution. Problem Description The problem is as follows: We want to calculate the number of ways to move an object &hellip; \ub354 \ubcf4\uae30 &quot;kotlin coding test course, bridge building&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/34980\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:34:14+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T11:45:29+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=\"3\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/atmokpo.com\/w\/34980\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/34980\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"kotlin coding test course, bridge building\",\"datePublished\":\"2024-11-01T09:34:14+00:00\",\"dateModified\":\"2024-11-01T11:45:29+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/34980\/\"},\"wordCount\":534,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"Kotlin coding test\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/34980\/\",\"url\":\"https:\/\/atmokpo.com\/w\/34980\/\",\"name\":\"kotlin coding test course, bridge building - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:34:14+00:00\",\"dateModified\":\"2024-11-01T11:45:29+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/34980\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/34980\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/34980\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"kotlin coding test course, bridge building\"}]},{\"@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":"kotlin coding test course, bridge building - \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\/34980\/","og_locale":"ko_KR","og_type":"article","og_title":"kotlin coding test course, bridge building - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"This article will discuss the &#8220;Bridge Construction&#8221; problem, which is frequently encountered in coding tests using Kotlin. First, we will introduce the problem, explain the algorithm, and then implement the code to find the optimal solution. Problem Description The problem is as follows: We want to calculate the number of ways to move an object &hellip; \ub354 \ubcf4\uae30 \"kotlin coding test course, bridge building\"","og_url":"https:\/\/atmokpo.com\/w\/34980\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:34:14+00:00","article_modified_time":"2024-11-01T11:45:29+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":"3\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/atmokpo.com\/w\/34980\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/34980\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"kotlin coding test course, bridge building","datePublished":"2024-11-01T09:34:14+00:00","dateModified":"2024-11-01T11:45:29+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/34980\/"},"wordCount":534,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["Kotlin coding test"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/34980\/","url":"https:\/\/atmokpo.com\/w\/34980\/","name":"kotlin coding test course, bridge building - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:34:14+00:00","dateModified":"2024-11-01T11:45:29+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/34980\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/34980\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/34980\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"kotlin coding test course, bridge building"}]},{"@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\/34980","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=34980"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/34980\/revisions"}],"predecessor-version":[{"id":34981,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/34980\/revisions\/34981"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=34980"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=34980"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=34980"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}