{"id":34588,"date":"2024-11-01T09:29:47","date_gmt":"2024-11-01T09:29:47","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=34588"},"modified":"2024-11-01T11:40:36","modified_gmt":"2024-11-01T11:40:36","slug":"javascript-coding-test-course-utilizing-time-complexity","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/34588\/","title":{"rendered":"JavaScript Coding Test Course, Utilizing Time Complexity"},"content":{"rendered":"<p><body><\/p>\n<h2>Problem Description<\/h2>\n<p>This problem is about finding the number closest to a given <code>num<\/code> value in the provided array <code>arr<\/code>. If there are multiple closest numbers, the one closer to <code>num<\/code> with a lower value takes precedence.<\/p>\n<h3>Input<\/h3>\n<ul>\n<li>An integer array <code>arr<\/code> (-10<sup>6<\/sup> \u2264 <code>arr[i]<\/code> \u2264 10<sup>6<\/sup>, 1 \u2264 <code>arr.length<\/code> \u2264 10<sup>5<\/sup>)<\/li>\n<li>An integer <code>num<\/code> (-10<sup>6<\/sup> \u2264 <code>num<\/code> \u2264 10<sup>6<\/sup>)<\/li>\n<\/ul>\n<h3>Output<\/h3>\n<p>Return the closest number.<\/p>\n<h2>Examples<\/h2>\n<pre>\nExample 1:\nInput: arr = [1, 2, 3, 4, 5], num = 3\nOutput: 3\n\nExample 2:\nInput: arr = [1, 2, 4, 5], num = 3\nOutput: 2\n\nExample 3:\nInput: arr = [5, 10, 15], num = 12\nOutput: 10\n<\/pre>\n<h2>Solution Process<\/h2>\n<p>To solve this problem, we follow these steps.<\/p>\n<h3>Step 1: Understand the Problem<\/h3>\n<p>First, since the task is to find the number closest to <code>num<\/code>, the key is to calculate the absolute differences between each element and <code>num<\/code> and find the smallest value. If there are multiple numbers with the same difference, the smaller value should be returned.<\/p>\n<h3>Step 2: Choose an Approach<\/h3>\n<p>The simplest method is to iterate through the array and calculate the absolute differences for each element. However, this has a time complexity of <code>O(n)<\/code>, so we need to consider a faster algorithm.<\/p>\n<h3>Step 3: Utilize Binary Search through Sorting<\/h3>\n<p>By sorting the input array, we can efficiently find the number closest to <code>num<\/code> using binary search. To find the index of a specific value <code>num<\/code> in the sorted array, we will use <code>Array.prototype.sort()<\/code> and then implement a <code>binarySearch()<\/code> function.<\/p>\n<h3>Step 4: Implement the Code<\/h3>\n<p>Below is the JavaScript code based on the above explanation.<\/p>\n<pre>\n<code>\nfunction findClosest(arr, num) {\n    \/\/ Sort the array\n    arr.sort((a, b) =&gt; a - b);\n    \n    let left = 0;\n    let right = arr.length - 1;\n    let closest = arr[0];\n\n    while (left &lt;= right) {\n        const mid = Math.floor((left + right) \/ 2);\n        \n        \/\/ Compare absolute differences\n        if (Math.abs(arr[mid] - num) &lt; Math.abs(closest - num) ||\n            (Math.abs(arr[mid] - num) === Math.abs(closest - num) &amp;&amp; arr[mid] &lt; closest)) {\n            closest = arr[mid];\n        }\n        \n        \/\/ Determine the direction of binary search\n        if (arr[mid] &lt; num) {\n            left = mid + 1;\n        } else {\n            right = mid - 1;\n        }\n    }\n    \n    return closest;\n}\n\n\/\/ Example Tests\nconsole.log(findClosest([1, 2, 3, 4, 5], 3)); \/\/ 3\nconsole.log(findClosest([1, 2, 4, 5], 3));    \/\/ 2\nconsole.log(findClosest([5, 10, 15], 12));      \/\/ 10\n<\/code>\n<\/pre>\n<h3>Step 5: Analyze Time Complexity<\/h3>\n<p>The above code first sorts the array, which has a time complexity of <code>O(n log n)<\/code>, and then the searching process using binary search requires <code>O(log n)<\/code> time. Therefore, the overall time complexity can be evaluated as <code>O(n log n)<\/code>.<\/p>\n<h2>Conclusion<\/h2>\n<p>This problem has taught us the importance of choosing an efficient algorithm considering time complexity. It is necessary to try various approaches for the given problem and select the appropriate algorithm based on the results. I hope you apply these principles well in future coding tests!<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Problem Description This problem is about finding the number closest to a given num value in the provided array arr. If there are multiple closest numbers, the one closer to num with a lower value takes precedence. Input An integer array arr (-106 \u2264 arr[i] \u2264 106, 1 \u2264 arr.length \u2264 105) An integer num &hellip; <a href=\"https:\/\/atmokpo.com\/w\/34588\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;JavaScript Coding Test Course, Utilizing Time Complexity&#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-34588","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, Utilizing Time Complexity - \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\/34588\/\" \/>\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, Utilizing Time Complexity - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"Problem Description This problem is about finding the number closest to a given num value in the provided array arr. If there are multiple closest numbers, the one closer to num with a lower value takes precedence. Input An integer array arr (-106 \u2264 arr[i] \u2264 106, 1 \u2264 arr.length \u2264 105) An integer num &hellip; \ub354 \ubcf4\uae30 &quot;JavaScript Coding Test Course, Utilizing Time Complexity&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/34588\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:29:47+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T11:40:36+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\/34588\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/34588\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"JavaScript Coding Test Course, Utilizing Time Complexity\",\"datePublished\":\"2024-11-01T09:29:47+00:00\",\"dateModified\":\"2024-11-01T11:40:36+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/34588\/\"},\"wordCount\":287,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"Javascript Coding Test\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/34588\/\",\"url\":\"https:\/\/atmokpo.com\/w\/34588\/\",\"name\":\"JavaScript Coding Test Course, Utilizing Time Complexity - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:29:47+00:00\",\"dateModified\":\"2024-11-01T11:40:36+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/34588\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/34588\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/34588\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"JavaScript Coding Test Course, Utilizing Time Complexity\"}]},{\"@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, Utilizing Time Complexity - \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\/34588\/","og_locale":"ko_KR","og_type":"article","og_title":"JavaScript Coding Test Course, Utilizing Time Complexity - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"Problem Description This problem is about finding the number closest to a given num value in the provided array arr. If there are multiple closest numbers, the one closer to num with a lower value takes precedence. Input An integer array arr (-106 \u2264 arr[i] \u2264 106, 1 \u2264 arr.length \u2264 105) An integer num &hellip; \ub354 \ubcf4\uae30 \"JavaScript Coding Test Course, Utilizing Time Complexity\"","og_url":"https:\/\/atmokpo.com\/w\/34588\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:29:47+00:00","article_modified_time":"2024-11-01T11:40:36+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\/34588\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/34588\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"JavaScript Coding Test Course, Utilizing Time Complexity","datePublished":"2024-11-01T09:29:47+00:00","dateModified":"2024-11-01T11:40:36+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/34588\/"},"wordCount":287,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["Javascript Coding Test"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/34588\/","url":"https:\/\/atmokpo.com\/w\/34588\/","name":"JavaScript Coding Test Course, Utilizing Time Complexity - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:29:47+00:00","dateModified":"2024-11-01T11:40:36+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/34588\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/34588\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/34588\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"JavaScript Coding Test Course, Utilizing Time Complexity"}]},{"@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\/34588","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=34588"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/34588\/revisions"}],"predecessor-version":[{"id":34589,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/34588\/revisions\/34589"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=34588"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=34588"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=34588"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}