지하철프로그램.zip 전에 알고리즘에 올렸던 지하철 최단거리를 C언어로 구현해 보았습니다. 어떻게 구현할지에 대해서 생각이 되어있다보니 구현을 하기까지 그렇게 어렵지는 않았습니다. 일단 최단경로에 주로 쓰이는 다익스트라 알고리즘을 사용하였습니다. 하지만 이 프로그램에 메인은 지하철역간을 걸어가서 운동하는 시간을 추가하는 것인데요. 프로그램의 제목이기도한 30분 걷기라는 주제로 도착시간과 소요시간을 고려하여 어디부터 어디까지 걸어라는 식으로 표시하게 만들었습니다. 원래 시작은 버스로 구현하기로 하였지만 하고하고하던중 버스 구현에는 오랜 시간이 소모되고 능력이 약간 부족하여 일단 쉬운 지하철로 구현을 하게 되었습니다. dat 파일은 역간 소요시간 및 역간 거리 정보를 일일이 따왔습니다. 아래 소스 첨부합니다. 20171201 추가 관련소스 압축 첨부합니다. 이게 맞는지 기억이 안나요 ;;ㅜㅜ
#include <stdio.h> #define TRUE 1 // 네트워크의인접행렬 // 시작노드로부터의 최단거리 int
choose(int [], int, int []); void main() int choose(int Distance[], int n, int found[]) count2
= 0; if ( trans != 1) { // Data 파일생성(거리) int cHour, cMin, dHour, dMin, dTime, lastHour, lastMin;
while(cont == 'Y' || cont == 'y' ){ // 현재 시간 출력 및 도착시간 입력 printf("\n출발역 이름을 입력하세요.(1~4호선) : "); printf("\n도착역 이름을 입력하세요.(1~4호선) : "); printf("\n===============================================================================\n"); //도착시간내 도착가능한지 판단 // 출발역 계산 함수호출 //도착시간 계산 // 결과값 출력 shortest_path(num1, station, Distance, NODES, found);
printf("계속 검색하시겠습니까?(Y/N) : "); // 걸을 수 있는 시간보다 거리가 늘어나면 전 역을 지정하고 리턴 |