Skip to content

[강희성] Sprint13#180

Open
hiiisiii wants to merge 1 commit into
codeit-bootcamp-nodejs:algorithm-강희성from
hiiisiii:algorithm-강희성

Hidden character warning

The head ref may contain hidden characters: "algorithm-\uac15\ud76c\uc131"
Open

[강희성] Sprint13#180
hiiisiii wants to merge 1 commit into
codeit-bootcamp-nodejs:algorithm-강희성from
hiiisiii:algorithm-강희성

Conversation

@hiiisiii

@hiiisiii hiiisiii commented May 26, 2026

Copy link
Copy Markdown
Collaborator

미션 목표

  • 자바스크립트로 정렬 알고리즘 구현하기
  • 자바스크립트로 자료 구조 구현하기
  • 자바스크립트로 힙 정렬 구현하기

요구사항

스프린트 12 정렬 알고리즘

  • 선택 정렬 (Selection Sort) - selectionSort(arr)

    • 숫자형 배열을 파라미터로 받고, 원본 배열을 직접 수정하도록 구현
  • 삽입 정렬 (Insertion Sort) - insertionSort(arr)

    • 숫자형 배열을 파라미터로 받고, 원본 배열을 직접 수정하도록 구현
  • 병합 정렬 (Merge Sort) - mergeSort(arr)

    • 숫자형 배열을 파라미터로 받고, 정렬된 새로운 배열을 반환하도록 구현
  • 퀵 정렬 (Quick Sort) - quickSort(arr)

    • 숫자형 배열을 파라미터로 받고, 원본 배열을 직접 수정하도록 구현

스프린트 13 자료구조 및 알고리즘

  • 링크드 리스트 (Linked List)

    • 파일 이름: algorithm/LinkedList.js
    • 클래스 이름: LinkedList
    • 메서드: addNode(), findNode(), insertAfter(), removeAfter()
  • 이중 링크드 리스트 (Doubly Linked List)

    • 파일 이름: algorithm/DoublyLinkedList.js
    • 클래스 이름: DoublyLinkedList
    • 메서드: addToHead(), addToTail(), insertAfter(), findNode(), removeNode()
  • 큐 (Queue)

    • 파일 이름: algorithm/Queue.js
    • 클래스 이름: Queue
    • 메서드: enqueue(), dequeue(), peek(), isEmpty()
  • 스택 (Stack)

    • 파일 이름: algorithm/Stack.js
    • 클래스 이름: Stack
    • 메서드: push(), pop(), peek(), isEmpty()
  • 이진 탐색 트리 (Binary Search Tree)

    • 파일 이름: algorithm/BinarySearchTree.js
    • 클래스 이름: BinarySearchTree
    • 메서드: insert(), find(), remove()
  • 힙 정렬 (Heap Sort)

    • 파일 이름: algorithm/sorts.js
    • 함수 이름: heapsort(arr)
    • 숫자형 배열을 파라미터로 받고, 원본 배열을 정렬된 상태로 직접 수정하도록 구현

주요 변경사항

  • algorithm/sorts.js에 정렬 알고리즘 5종 구현

    • selectionSort
    • insertionSort
    • mergeSort
    • quickSort
    • heapsort
  • algorithm 폴더에 기본 자료구조 구현 파일 추가

    • LinkedList.js
    • DoublyLinkedList.js
    • Queue.js
    • Stack.js
    • BinarySearchTree.js
  • 각 파일에서 CommonJS 방식으로 모듈 export 처리

  • 각 파일 하단에 if (require.main === module) 조건을 사용해 독립 실행 테스트 코드 작성

  • mergeSort는 요구사항에 맞게 원본 배열을 유지하고 새 정렬 배열을 반환하도록 구현

  • 나머지 정렬 함수는 요구사항에 맞게 원본 배열을 직접 수정하도록 구현


테스트

아래 명령어로 각 파일의 동작을 확인했습니다.

node algorithm/sorts.js
node algorithm/LinkedList.js
node algorithm/DoublyLinkedList.js
node algorithm/Queue.js
node algorithm/Stack.js
node algorithm/BinarySearchTree.js

스크린샷

링크드 리스트 (Linked List)

스크린샷 2026-05-26 오후 5 33 13

이중 링크드 리스트 (Doubly Linked List)

스크린샷 2026-05-26 오후 5 34 02

큐 (Queue)

스크린샷 2026-05-26 오후 5 36 24

스택 (Stack)

스크린샷 2026-05-26 오후 5 36 51

이진 탐색 트리 (Binary Search Tree)

스크린샷 2026-05-26 오후 5 37 07

힙 정렬 (Heap Sort)

스크린샷 2026-05-26 오후 5 37 25

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant