본문 바로가기
프로젝트

자료구조 프로젝트 MID

by 초록구미 2022. 10. 18.

▼자료구조 프로젝트 목록

과제 설명

하천 부유 쓰레기 사진 데이터를 직접 구성 및 공유합니다. 구축한 데이터를 바탕으로 원하는 문제를 정의하고 자료구조를 이용해 해결합니다.

 

데이터 소개 및 다운로드 링크

  • 데이터는 총 104장의 하천 부유 쓰레기 이미지와, 이미지의 정보를 요약한 data.csv파일, 총 두 가지입니다.
  • data.csv에는 이미지 크기, 촬영장소의 위도·경도 및 쓰레기 종류가 요약되어 있습니다.
  • 성북천·청계천·도림천·안양천·한강 총 5곳에서 촬영하였습니다. 
  • 이미지 크기는 3024x4032 또는 4032x3024입니다.

  • 보다 상세한 설명은 압축 파일의 README.txt를 참고 바랍니다.
  • 데이터는 아래 링크에서 다운받을 수 있습니다.

https://drive.google.com/file/d/1noCeQidP420YOoeQW9bTLPVgRbAKoxew/view?usp=sharing 

 

하천 부유 쓰레기 데이터.zip

 

drive.google.com

 

 

문제 소개

하천 중에는 관리가 잘 되어 깨끗한 하천이 있는 반면, 관리가 미흡하거나 집중호우 등으로 쓰레기가 많은 하천도 있습니다. 그렇다면 당연히 쓰레기가 많은 하천부터 청소해야 효율적일 것입니다.

따라서 저는 하천별 쓰레기양을 기준으로 스케줄링하여 관리하는 방법을 제안합니다. 이는 어떤 프로세스에 자원을 할당할지 결정하는 OS의 작업 스케줄러와 비슷하다고 볼 수 있습니다. 예를 들어 Linux 2.6에서는 red-black tree라는 자료구조를 이용하여 작업을 관리합니다. 마찬가지로 하천별 쓰레기양(원한다면 다른 조건도 추가합니다)을 기준으로 스케줄링한다면, 쓰레기가 일정량 이상인 하천을 빠르게 탐색하여 효율적인 수거가 가능할 것입니다. 또 수거현황에 따라 실시간으로 업데이트를 할 수도 있습니다.

 

이 문제에는 어떤 자료구조를 사용해야 할까요?

쓰레기 수거현황에 따라 트리 변동이 잦을 수 있다는 특성상, 삽입/삭제가 빠른 자료구조를 사용해야 한다고 판단했습니다. 스케줄링에 사용할 수 있는 이진탐색트리로 AVL tree, red-black tree 등이 있습니다. AVL tree는 비교적 엄격하게 균형을 유지하므로 탐색에 효율적이지만 삽입/삭제 연산에는 비효율적입니다. red-black tree는 반대입니다. 탐색에는 비효율적이나 삽입/삭제 연산에 강합니다. 이에 따라 Linux 2.6과 마찬가지로 red-black tree를 사용하여 스케줄러를 만들기로 하겠습니다.

'프로젝트' 카테고리의 다른 글

습관형성 앱 프로젝트 회고  (0) 2023.01.01
자료구조 프로젝트 FIN  (0) 2022.12.04

댓글