{"id":35125884,"url":"https://github.com/l2hyunn/javascript-algorithms","last_synced_at":"2026-05-19T18:36:06.645Z","repository":{"id":65461330,"uuid":"587592488","full_name":"L2HYUNN/javascript-algorithms","owner":"L2HYUNN","description":"Algorithms and data structures implemented in JavaScript","archived":false,"fork":false,"pushed_at":"2026-04-01T14:38:45.000Z","size":421,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-01T16:28:02.569Z","etag":null,"topics":["javascript","javascript-algorithms","js"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/L2HYUNN.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-01-11T05:32:34.000Z","updated_at":"2026-04-01T14:38:49.000Z","dependencies_parsed_at":"2025-04-18T12:46:55.992Z","dependency_job_id":null,"html_url":"https://github.com/L2HYUNN/javascript-algorithms","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/L2HYUNN/javascript-algorithms","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/L2HYUNN%2Fjavascript-algorithms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/L2HYUNN%2Fjavascript-algorithms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/L2HYUNN%2Fjavascript-algorithms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/L2HYUNN%2Fjavascript-algorithms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/L2HYUNN","download_url":"https://codeload.github.com/L2HYUNN/javascript-algorithms/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/L2HYUNN%2Fjavascript-algorithms/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33227480,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-19T15:49:41.270Z","status":"ssl_error","status_checked_at":"2026-05-19T15:49:22.917Z","response_time":58,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["javascript","javascript-algorithms","js"],"created_at":"2025-12-28T02:38:29.820Z","updated_at":"2026-05-19T18:36:06.638Z","avatar_url":"https://github.com/L2HYUNN.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# JavaScript Study\n\n자바스크립트를 이용한 알고리즘과 데이터 구조를 공부하며 작성한 코드를 기록합니다.\n\n[![Solved.ac Profile](http://mazassumnida.wtf/api/v2/generate_badge?boj=dhl9810)](https://solved.ac/dhl9810/)\n\n## List\n\n- JavaScript Algorithms and Data Structures Masterclass\n- 자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)\n- Programmers\n- Baekjoon\n\n## Handbook\n\n### 이중 배열\n\n```js\nlet arr = new Array(n).fill(0).map(() =\u003e new Array(n).fill(0));\nlet arr2 = Array.from({ length: n }, () =\u003e Array(n).fill(0));\nlet arr3 = Array.from(Array(length), () =\u003e Array(n).fill(0));\n```\n\n- [가장 많이 받은 선물](https://github.com/L2HYUNN/javascript-algorithms/tree/main/Programmers/Level-1/%EA%B0%80%EC%9E%A5%20%EB%A7%8E%EC%9D%B4%20%EB%B0%9B%EC%9D%80%20%EC%84%A0%EB%AC%BC)\n\n### 조합\n\n```js\nfunction combination(arr, k) {\n  function backtrack(start, path) {\n    if (path.length === k) {\n      result.push([...path]);\n      return;\n    }\n\n    for (let i = start; i \u003c arr.length; i++) {\n      path.push(arr[i]);\n      backtrack(i + 1, path);\n      path.pop();\n    }\n  }\n\n  const result = [];\n  backtrack(0, []);\n\n  return result;\n}\n```\n\n### 중복 조합\n\n```js\nfunction duplicateCombination(arr, k) {\n  function backtrack(start, path) {\n    if (path.length === k) {\n      result.push([...path]);\n      return;\n    }\n\n    for (let i = start; i \u003c arr.length; i++) {\n      path.push(arr[i]);\n      backtrack(i, path);\n      path.pop();\n    }\n  }\n\n  const result = [];\n  backtrack(0, []);\n\n  return result;\n}\n```\n\n### 순열\n\n```js\nfunction permutation(arr, k) {\n  function backtrack(path) {\n    if (path.length === k) {\n      result.push([...path]);\n      return;\n    }\n\n    for (let i = 0; i \u003c arr.length; i++) {\n      if (path.includes(arr[i])) continue;\n      path.push(arr[i]);\n      backtrack(path);\n      path.pop();\n    }\n  }\n\n  const result = [];\n  backtrack([]);\n\n  return result;\n}\n```\n\n### 중복 순열\n\n```js\nfunction duplicatePermutation(arr, k) {\n  function backtrack(path) {\n    if (path.length === k) {\n      result.push([...path]);\n      return;\n    }\n\n    for (let i = 0; i \u003c arr.length; i++) {\n      path.push(arr[i]);\n      backtrack(path);\n      path.pop();\n    }\n  }\n\n  const result = [];\n  backtrack([]);\n\n  return result;\n}\n```\n\n### 이진 탐색\n```js\nfunction binarySearch(arr, target) {\n    let left = 0;\n    let right = arr.length - 1;\n\n    while (left \u003c= right) {\n        let mid = Math.floor((left + right) / 2);\n\n        if (arr[mid] === target) {\n            return mid;  \n        } else if (arr[mid] \u003c target) {\n            left = mid + 1;  \n        } else {\n            right = mid - 1;  \n        }\n    }\n\n    return -1;  \n}\n\n```\n\n### 문자 정렬\n```js\n// 문자열 오름차순 정렬\nstrArray.sort();\n\n// 문자열 내림차순 정렬\nstrArray.sort().reverse();\n\n// 숫자 오름차순 정렬\nnumArray.sort((a, b) =\u003e a - b);\n\n// 숫자 내림차순 정렬\nnumArray.sort((a, b) =\u003e b - a);\n```\n\n### DFS\n```js\nconst graph = [[1, 2, 4], [0, 5], [0, 5], [4], [0, 3], [1, 2]];\nconst visited = Array(6).fill(false);\n\nDFS(graph, 0, visited);\n\nfunction DFS(graph, v, visited) {\n  visited[v] = true;\n\n  for (let node of graph[v]) {\n    if (!visited[node]) {\n      dfs(graph, node, visited);\n    }\n  }\n}\n```\n\n\n### BFS\n```js\nconst graph = [[1, 2, 4], [0, 5], [0, 5], [4], [0, 3], [1, 2]];\nconst visited = Array(6).fill(false);\n\nBFS(graph, 0, visited);\n\nfunction BFS(graph, start, visited) {\n  const queue = new Queue();\n  queue.enqueue(start);\n  visited[start] = true;\n\n  while (queue.size()) {\n    const v = queue.dequeue();\n\n    for (const node of graph[v]) {\n      if (!visited[node]) {\n        queue.enqueue(node);\n        visited[node] = true;\n      }\n    }\n  }\n}\n```\n\n### 큐\n```js\nclass Queue {\n  constructor() {\n    this.store = {}; // Stores the queue elements\n    this.front = 0; // Pointer to the front of the queue\n    this.rear = 0; // Pointer to the rear of the queue\n  }\n\n  size() {\n    return this.rear - this.front;\n  }\n\n  enqueue(value) {\n    this.store[this.rear] = value;\n    this.rear++;\n    return true;\n  }\n\n  dequeue() {\n    if (this.size() === 0) {\n      return undefined; // Return undefined if the queue is empty\n    }\n\n    const value = this.store[this.front];\n    delete this.store[this.front];\n    this.front++;\n\n    // Reset pointers if the queue is empty\n    if (this.size() === 0) {\n      this.front = 0;\n      this.rear = 0;\n    }\n\n    return value;\n  }\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fl2hyunn%2Fjavascript-algorithms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fl2hyunn%2Fjavascript-algorithms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fl2hyunn%2Fjavascript-algorithms/lists"}