{"id":34502,"date":"2024-11-01T09:28:42","date_gmt":"2024-11-01T09:28:42","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=34502"},"modified":"2024-11-01T11:41:00","modified_gmt":"2024-11-01T11:41:00","slug":"javascript-coding-test-course-finding-the-order-of-permutations","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/34502\/","title":{"rendered":"JavaScript Coding Test Course, Finding the Order of Permutations"},"content":{"rendered":"<p><body><\/p>\n<h2>Problem Description<\/h2>\n<p>There is a problem of finding the index of a specific permutation among the permutations that can be made from the given numbers.<\/p>\n<p>For example, when the numbers 1, 2, and 3 are given, all the possible permutations are as follows:<\/p>\n<ul>\n<li>123<\/li>\n<li>132<\/li>\n<li>213<\/li>\n<li>231<\/li>\n<li>312<\/li>\n<li>321<\/li>\n<\/ul>\n<p>The question is to find out the index of a specific number&#8217;s permutation. In the above example, 231 corresponds to the 4th position.<\/p>\n<h2>Input Format<\/h2>\n<p>The first line contains the number of digits <code>n<\/code> (1 \u2264 n \u2264 10).<\/p>\n<p>The second line contains <code>n<\/code> natural numbers. (Each number is a different natural number from 1 to <code>n<\/code>.)<\/p>\n<p>The third line contains the desired permutation index <code>k<\/code> (1 \u2264 k \u2264 n!).<\/p>\n<h2>Output Format<\/h2>\n<p>Print the desired permutation.<\/p>\n<h2>Problem Solving<\/h2>\n<h3>Approach<\/h3>\n<p>To solve this problem, we define the following steps:<\/p>\n<ol>\n<li>Generate all combinations of the numbers to create a list of permutations.<\/li>\n<li>Find the desired permutation in the list of permutations.<\/li>\n<\/ol>\n<h3>Permutation Generation Algorithm<\/h3>\n<p>Here, we will describe the process of generating permutations and finding a specific order using JavaScript. We will use the <strong>DFS (Depth-First Search)<\/strong> method to generate permutations.<\/p>\n<h3>JavaScript Code<\/h3>\n<pre>\n        <code>\nfunction getPermutations(arr) {\n    const result = [];\n    \n    const backtrack = (current, remaining) =&gt; {\n        if (remaining.length === 0) {\n            result.push(current);\n            return;\n        }\n        \n        for (let i = 0; i &lt; remaining.length; i++) {\n            const newCurrent = [...current, remaining[i]];\n            const newRemaining = [...remaining.slice(0, i), ...remaining.slice(i + 1)];\n            backtrack(newCurrent, newRemaining);\n        }\n    };\n    \n    backtrack([], arr);\n    return result;\n}\n\nfunction findPermutation(n, nums, k) {\n    const permutations = getPermutations(nums);\n    return permutations[k - 1].join('');\n}\n\n\/\/ Example input\nconst n = 3;\nconst nums = [1, 2, 3];\nconst k = 4;\n\n\/\/ Output\nconsole.log(findPermutation(n, nums, k)); \/\/ 231\n        <\/code>\n    <\/pre>\n<h3>Code Explanation<\/h3>\n<p>The above code consists of two functions:<\/p>\n<ul>\n<li><strong>getPermutations<\/strong>: Generates all permutations of the given array.<\/li>\n<li><strong>findPermutation<\/strong>: Returns the permutation corresponding to the desired index.<\/li>\n<\/ul>\n<h3>Detailed Explanation of getPermutations Function<\/h3>\n<p>This function generates permutations recursively:<\/p>\n<ul>\n<li>Select one of the elements from the current array and add it to the current combination.<\/li>\n<li>Create a new array with the remaining elements, excluding the selected element, and proceed with the recursive call.<\/li>\n<li>Repeat this process until all elements are selected, and add the completed permutation to the result.<\/li>\n<\/ul>\n<h3>Detailed Explanation of findPermutation Function<\/h3>\n<p>This function goes through the following steps:<\/p>\n<ol>\n<li>Generates all permutations for the given number array.<\/li>\n<li>Finds the permutation corresponding to the <code>k-1<\/code> index in the generated permutation array and returns it as a string.<\/li>\n<\/ol>\n<h2>Time Complexity<\/h2>\n<p>The time complexity of this algorithm is O(n!). Since it generates all permutations, the calculation time can become very long as the number of digits increases. However, since the value of n is limited to 10 or less, the problem can be solved at a practical level.<\/p>\n<h2>Conclusion<\/h2>\n<p>Now you have learned how to create permutations and find a specific ordered permutation. This is one of the types of problems that frequently appear in coding tests, so practice until you are fully proficient.<\/p>\n<p>In the next session, I will return with another algorithm problem. Thank you!<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Problem Description There is a problem of finding the index of a specific permutation among the permutations that can be made from the given numbers. For example, when the numbers 1, 2, and 3 are given, all the possible permutations are as follows: 123 132 213 231 312 321 The question is to find out &hellip; <a href=\"https:\/\/atmokpo.com\/w\/34502\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;JavaScript Coding Test Course, Finding the Order of Permutations&#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":[141],"tags":[],"class_list":["post-34502","post","type-post","status-publish","format-standard","hentry","category-javascript-coding-test"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>JavaScript Coding Test Course, Finding the Order of Permutations - \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\/34502\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"JavaScript Coding Test Course, Finding the Order of Permutations - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"Problem Description There is a problem of finding the index of a specific permutation among the permutations that can be made from the given numbers. For example, when the numbers 1, 2, and 3 are given, all the possible permutations are as follows: 123 132 213 231 312 321 The question is to find out &hellip; \ub354 \ubcf4\uae30 &quot;JavaScript Coding Test Course, Finding the Order of Permutations&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/34502\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:28:42+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T11:41:00+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\/34502\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/34502\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"JavaScript Coding Test Course, Finding the Order of Permutations\",\"datePublished\":\"2024-11-01T09:28:42+00:00\",\"dateModified\":\"2024-11-01T11:41:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/34502\/\"},\"wordCount\":401,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"Javascript Coding Test\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/34502\/\",\"url\":\"https:\/\/atmokpo.com\/w\/34502\/\",\"name\":\"JavaScript Coding Test Course, Finding the Order of Permutations - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:28:42+00:00\",\"dateModified\":\"2024-11-01T11:41:00+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/34502\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/34502\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/34502\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"JavaScript Coding Test Course, Finding the Order of Permutations\"}]},{\"@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":"JavaScript Coding Test Course, Finding the Order of Permutations - \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\/34502\/","og_locale":"ko_KR","og_type":"article","og_title":"JavaScript Coding Test Course, Finding the Order of Permutations - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"Problem Description There is a problem of finding the index of a specific permutation among the permutations that can be made from the given numbers. For example, when the numbers 1, 2, and 3 are given, all the possible permutations are as follows: 123 132 213 231 312 321 The question is to find out &hellip; \ub354 \ubcf4\uae30 \"JavaScript Coding Test Course, Finding the Order of Permutations\"","og_url":"https:\/\/atmokpo.com\/w\/34502\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:28:42+00:00","article_modified_time":"2024-11-01T11:41:00+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\/34502\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/34502\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"JavaScript Coding Test Course, Finding the Order of Permutations","datePublished":"2024-11-01T09:28:42+00:00","dateModified":"2024-11-01T11:41:00+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/34502\/"},"wordCount":401,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["Javascript Coding Test"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/34502\/","url":"https:\/\/atmokpo.com\/w\/34502\/","name":"JavaScript Coding Test Course, Finding the Order of Permutations - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:28:42+00:00","dateModified":"2024-11-01T11:41:00+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/34502\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/34502\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/34502\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"JavaScript Coding Test Course, Finding the Order of Permutations"}]},{"@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\/34502","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=34502"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/34502\/revisions"}],"predecessor-version":[{"id":34503,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/34502\/revisions\/34503"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=34502"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=34502"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=34502"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}