[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์ด์ง„ํƒ์ƒ‰ ์ •๋ฆฌ

2023. 5. 16. 18:12ยท๐Ÿคฏ ๋ฐ์ดํ„ฐ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜

 

์ด์ง„ ํƒ์ƒ‰์€ ์ •๋ ฌ๋œ ๋งค์šฐ ํฐ ๋ฒ”์œ„ ๋‚ด์—์„œ ์ตœ์ ์˜ ํ•ด๋ฅผ ์ฐพ๋Š” ๊ฒฝ์šฐ์— ์œ ๋ฆฌํ•˜๋‹ค.
์ด์ง„ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ O(logN)์˜ ๋ณต์žก๋„๋ฅผ ๋ณด์žฅํ•œ๋‹ค.

์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•œ ์ด์ง„ํƒ์ƒ‰

let arr = [1, 3, 5, 7, 9, 11, 13, 15, 17];

let target = 11;

function b_search_recur(arr, target, left, right) {
  let mid = parseInt((left + right) / 2);

  if (left > right) {
    return -1;
  }

  if (arr[mid] == target) {
    return mid;
  } else if (arr[mid] < target) {
    return b_search_recur(arr, target, mid + 1, right);
  } else {
    return b_search_recur(arr, target, left, mid - 1);
  }
}

console.log(b_search_recur(arr, target, 0, arr.length - 1)); //5(index๊ฐ’)

๋ฐ˜๋ณต๋ฌธ์„ ์ด์šฉํ•œ ์ด์ง„ํƒ์ƒ‰

function b_search_loop(arr, target, left, right) {
  while (left <= right) {
    let mid = parseInt((left + right) / 2);
    if (arr[mid] == target) {
      return mid;
    } else if (arr[mid] < target) {
      left = mid + 1;
    } else {
      right = mid - 1;
    }
  }
  return -1;
}

์ •๋ ฌ๋œ ๋ฐฐ์—ด์—์„œ ํŠน์ • ์›์†Œ์˜ ๊ฐœ์ˆ˜ ์•Œ๊ธฐ

function lowerBound(arr, target, left, right) {
  while (left < right) {
    let mid = parseInt((left + right) / 2);
    if (arr[mid] >= target) right = mid;
    else left = mid + 1;
  }
  return right;
}

function upperBound(arr, target, left, right) {
  while (left < right) {
    let mid = parseInt((left + right) / 2);
    if (arr[mid] > target) right = mid;
    else left = mid + 1;
  }
  return right;
}

function countByRange(arr, leftValue, rightValue) {
  let rightIndex = upperBound(arr, rightValue, 0, arr.length);
  let leftIndex = lowerBound(arr, leftValue, 0, arr.length);

  return rightIndex - leftIndex;
}

let arr = [1, 2, 3, 3, 3, 3, 4, 4, 8, 9];

console.log(countByRange(arr, 2, 4)); //7

'๐Ÿคฏ ๋ฐ์ดํ„ฐ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

์ˆœ์—ด, ์กฐํ•ฉ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ดํ•ดํ•˜๊ธฐ  (0) 2023.05.19
[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•œ DFS(2)  (0) 2022.12.01
[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์ธ์ ‘ ํ–‰๋ ฌ์„ ํ†ตํ•œ ์ธ์ ‘๋ฆฌ์ŠคํŠธ ๊ตฌํ˜„, DFS(1)  (0) 2022.11.26
[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์‚ฝ์ž… ์ •๋ ฌ ๊ตฌํ˜„ (c์–ธ์–ด)  (0) 2022.11.12
[์•Œ๊ณ ๋ฆฌ์ฆ˜] ๋ฒ„๋ธ” ์ •๋ ฌ ๊ตฌํ˜„ (c์–ธ์–ด)  (0) 2022.11.10
'๐Ÿคฏ ๋ฐ์ดํ„ฐ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • ์ˆœ์—ด, ์กฐํ•ฉ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ดํ•ดํ•˜๊ธฐ
  • [์•Œ๊ณ ๋ฆฌ์ฆ˜] ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•œ DFS(2)
  • [์•Œ๊ณ ๋ฆฌ์ฆ˜] ์ธ์ ‘ ํ–‰๋ ฌ์„ ํ†ตํ•œ ์ธ์ ‘๋ฆฌ์ŠคํŠธ ๊ตฌํ˜„, DFS(1)
  • [์•Œ๊ณ ๋ฆฌ์ฆ˜] ์‚ฝ์ž… ์ •๋ ฌ ๊ตฌํ˜„ (c์–ธ์–ด)
jaeyunim
jaeyunim
  • jaeyunim
    ๋ฐฅ๋ฐฅ๋ฐฅqkq
    jaeyunim
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๐Ÿ“š ja2yun000 NOTE (43)
      • ๐Ÿง‘‍๐Ÿ’ผ ๋„คํŠธ์›Œํฌ ๋…ธํŠธ (0)
      • โ˜๏ธ ํด๋ผ์šฐ๋“œ (0)
      • โœ๏ธ ํšŒ๊ณ ๋ก (1)
      • ๐Ÿ–ฅ๏ธ Language (8)
        • Core Javascript (3)
        • Vanila Javascript (5)
      • ๐Ÿ”ง Library (7)
        • React JS (5)
        • WebSocket (2)
      • ๐Ÿงฑ Framework (12)
        • Node.js (9)
        • Django (3)
      • ๐Ÿ“ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต (8)
      • ๐Ÿคฏ ๋ฐ์ดํ„ฐ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (7)
      • ๐Ÿค” ์žก๋‹คํ•œ ์ง€์‹ (0)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ๐ŸŒˆ github.com
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    React
    nodejs
    JS
    ์žฅ๊ณ  url
    ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ
    ๊นƒํ—ˆ๋ธŒ ๋กœ๊ทธ์ธ
    C์–ธ์–ด
    allow function
    Core JavaScript
    ์ฝ”๋”ฉํ…Œ์ŠคํŠธ
    ์•Œ๊ณ ๋ฆฌ์ฆ˜
    ์˜ค๋ธ”์™„
    ์ด์ง„ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜
    Django
    Mongo
    ํ‹ฐ์Šคํ† ๋ฆฌ์ฑŒ๋ฆฐ์ง€
    ์ธ์ ‘๋ฆฌ์ŠคํŠธ
    ์œ ํŠœ๋ธŒ ํด๋ก ์ฝ”๋”ฉ
    ์žฅ๊ณ  ์•ฑ
    reactjs
    JavaScript
    dfs
    ํ™”์‚ดํ‘œ ํ•จ์ˆ˜
    ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
    Express
    pipenv
    socket.io
    ๋กœ๊ทธ์ธapi
    useEffect
    ์žฅ๊ณ 
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.1
jaeyunim
[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์ด์ง„ํƒ์ƒ‰ ์ •๋ฆฌ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”