너의 시간표가 보여
학교에서 졸업프로젝트를 하게 됐다. 주제로는 당장 내가 힘들었던 것을 개선해보고자 했다. 학교생활 정규학기 8학기동안 8번의 수강신청을 하게 되는데 이때 시간표 만드는 일이 꽤나 귀찮은 일이었다. 다른 학교는 모르겠지만 우리 학교의 경우 일일이 시간을 비교하면서 짜는게 너무 귀찮고 불편했다. (학교 수강신청 과정)
주제를 정하고 팀원들과 다음과 같이 업무를 나눴다.
여기서 주로 2번째 알고리즘 파트를 담당해서 진행했다. 필터링 작업은 조건문을 통해서 쉽게 구현이 가능했지만 시간표 조합하는 알고리즘 구현하는게 시간이 좀 걸렸다. 검색을 열심히 해본 결과 이곳을 참고해서 구현해 봤다.
백트래킹 알고리즘은 다음과 같은 과정으로 구현했다. 교양,웹강,전공 각각 요구학점이 다르기 때문에 이 부분 처리해주는게 어려웠다. 이 알고리즘 짜면서 DFS 공부 제대로 한 것 같다. 이 외에도 시간표가 만들어졌을때 어떤 시간표가 더 좋은 시간표인지 가중치 부여하는 작업을 진행했다.
실제 구현화면
후기
어떻게 보면 사소한거지만 내가 직접 겪은 불편한 점을 조금이나마 개선했다는 점에 대해 만족하고 있다.(막 학기라 내가 쓸일은 없을 것 같다..)
현재는 데이터 로드할 때 컴퓨터에서 저장된 csv파일을 불러오는 방식으로 작동되는데 이 부분을 좀 개선하고 싶다. 비록 내가 앞으로 이 프로그램을 쓸 일이 있을지 모르겠지만 좀 더 개선시켜서 학교 사람들에게 공유해주고 싶다.