🎁 모든 강의 30% + 무료 강의 선물🎁

인프런 워밍업 클럽 3기 CS - [3주차] 자료구조와 알고리즘 미션

인프런 워밍업 클럽 3기 CS - [3주차] 자료구조와 알고리즘 미션

1. 지금까지 배운 5개의 정렬 알고리즘의 장단점과 시간 복잡도를 적어주세요.

  • 버블 정렬 : O(n²)

  • 선택 정렬 : O(n²)

  • 삽입 정렬 : O(n²)

  • 병합 정렬 : O(n log n)

  • 퀵 정렬 : Θ(n log n) / 최악 케이스: O(n²)

2. 메모리가 부족한 시스템에서 어떤 문제를 해결하는데 재귀로 쉽게 구현이 가능할 것 같습니다. 여러분이라면 메모이제이션과 타뷸레이션 중 어떤 걸 이용하실 건가요? 이유를 함께 적어주세요.

  • 메모리가 부족한 상황이라면 재귀로 쉽게 구현이 가능하지만 타뷸레이션으로 구현할 것 같습니다.

  • 메모이제이션은 재귀를 사용하기 때문에 콜 스택에 함수 프레임이 쌓이게 되며, 함수의 계산 결과 또한 별도의 메모리 공간에 저장하기 때문에 메모리가 빠르게 부족해질 수 있을 것이라고 판단했기 때문입니다.

  • 타뷸레이션도 함수의 계산 결과를 별도의 메모리 공간에 저장하기는 하지만 메모이제이션에 비해서는 메모리를 덜 사용한다고 생각합니다.

  • 만약 해당 알고리즘을 구현을 한다면 메모이제이션으로 우선 구현한 뒤, 타뷸레이션으로 리팩터링 하는 식으로 구현할 것 같습니다.

댓글을 작성해보세요.


채널톡 아이콘