알고리즘 2

그래프에서의 인접행렬과 인접리스트

그래프의 탐색을 하기 위해서는 그래프 정보를 저장해야만 한다. 그래프의 저장 방법 2가지를 살펴보고, 실제 예제를 통해 어떻게 적용되는지 살펴보도록 하겠다. 위와 같은 그래프는 방향성과 가중치를 가지고 있다. 이 그래프를 2가지 방법으로 자료를 정리해 보자. 인접행렬 인접행렬의 경우 2차 배열을 생각하면 쉽다. 이 때 기본 규칙은 간단하다. 각 점을 기준으로 갈 수 있는 방향에 데이터를 저장하며, 갈 수 없다면, 특정한 값을 입력해 놓도록 한다.(기본적으로 0 혹은 -1을 사용한다.) 가중치가 없는 경우라면 0과 1로 표현이 가능하다. 또한, 고민해 보아야 할 것은 방향성을 갖지 않는 경우이다. 예를 들어 위의 예제 그래프의 경우 정점 1에서 2로 이동하는 경로는 1가지 이다. 하지만 방향성이 없는 경우..

온라인 저지먼트 시스템 구축하기 (Online Judgment System)

알고리즘에 관련된 대회 준비를 위한 온라인 저지먼트 시스템을 구축하려고 합니다. 물론 저의 프로그래밍 실력이 워낙 미천한지라.. 이를 구현하기 위해서는 많은 준비가 필요할 듯 합니다. 또한, 미천한 실력으로 인하여 직접 시스템을 구축하는 것이 아니라 오픈소스로 이미 기존에 만들어진 시스템을 약간의 수정을 통해 구축해 보려고 합니다. 뻘짓이 되지 않으려구요. 이를 활용할 수 있는 방안을 생각해 보면 지역대회 운영하는 경우에 이 시스템을 통해서 문제의 출제와 채점을 자동화 할 수 있는 측면이 존재하며, 학생들이 학습할 수 있는 장을 마련해 보고자 합니다. 준비 준비의 과정에서 시스템을 어떻게 구축할지를 생각해 보았습니다. 일단 서버는 라즈베리파이를 이용하도록 하겠습니다. 우리가 사용할 시스템의 사용자가 많지..