Algorithm문제풀이: LeetCode의 #704 Binary Search (easy) 🧑🚀문제링크: https://leetcode.com/problems/binary-search/ 🍩사용언어: 자바스크립트 🍦로직: sorted array( 작은 숫자부터 큰 숫자로 정렬된 어레이)를 가지고 target을 가장 효율적으로 찾는 방법으로 이진검색 알고리즘을 사용했습니다. 먼저 어레이의 가장 가운데 숫자(nums[mid])부터 우리가 찾고있는 target과 동일 할 경우 target의 인덱스를 리턴하도록 하였습니다. 만일 가운데 숫자가 우리의 target보다 더 작을 경우에는 right의 값을 mid - 1 으로 재설정하여, 어레이 검색을 가운데로부터 좌측으로 하게끔 했습니다. 예시: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 에서 5가 처음 mid 인덱스 값에서 우리의 다음 검색은 [0, 1, 2, 3, 4] 로 범위가 줄어 든다. 만일 가운데 숫자가 우리의 target보다 더 클 경우에는 left의 값을 mid + 1 으로 재설정하여, 다음 검색은 [6, 7, 8, 9, 10] 어레이 안에서 찾도록 한다. 아래 링크는 이진검색 알고리즘 쉽게 설명해주는 노마드코더님의 영상입니다. (5:38부터) 참고하시면 도움이 되실 것입니다.
🚀성능: Big O notation as O(log n) 🍭솔루션: var search = function(nums, target) { let left = 0; let right = nums.length-1; while (left <= right) { let mid = Math.floor((left + right) / 2); if (nums[mid] == target) return mid; (nums[mid] < target) ? left = mid + 1 : right = mid - 1; } return -1; } 위 내용은 문제를 푸는 수 많은 방법중에 하나입니다. 여러분의 솔루션 또는 의견을 댓글로 공유해주세요!콘텐츠를 더 읽고 싶다면?
원티드에 가입해 주세요.
로그인 후 모든 글을 볼 수 있습니다.
로그인 후 모든 글을 볼 수 있습니다.