- 역 등록
- 라인명, 기준이 되는 역, 등록 할 역, 방향, 거리를 입력받아 역을 등록한다.
- 등록할 역의 위치는 자유롭게 지정할 수 있다.
- 입력한 두 역이 전체 노선에서 이미 연결되어 있으면 안된다.
- 기준이 되는 역은 꼭 존재해야 한다.
- 등록할 역은 같은 노선에는 존재하면 안된다.
- 노선 가운데 역이 등록될 경우 거리 정보를 고려해야 한다.
- A-B-C 노선에서 B 다음에 D 역을 등록하려고 할 때 B-C가 3km, B-D거리가 2km라면 B-D거리는 2km로 등록되어야 하고 D-C 거리는 1km로 등록되어야 한다.
- 위에 해당하는 경우가 아닌 경우 예외가 발생한다.
- 역 제거
- 역을 제거하는 경우 정상 동작을 위해 재배치 되어야 한다.
- 역과 역 사이의 거리도 재배정 되어야 한다.
- 노선에 등록된 역이 2개 인 경우 역을 제거할 때 두 역이 모두 제거되어야 한다.
- 노선 조회
- 노선에 포함된 역을 순서대로 보여줘야 한다.
- 전체 노선 조회
- 전체 노선에 포함된 역을 순서대로 보여줘야 한다.
역
- 노선에 역 등록 기능
- 노선에 초기 역 등록 기능
- 노선에 역 제거 기능
노선
- 노선 추가
- 노선 삭제
- 노선 수정
- 노선 조회
{
"id" : 1,
"name": "5호선",
"color": "PURPLE",
"stations": [
"길동역", "강동역", "천호역"
]
}- 전체 노선 조회
[
{
"id": 1,
"name": "5호선",
"color": "PURPLE",
"stations": [
"길동역", "강동역", "천호역"
]
},
{
"id": 2,
"name": "8호선",
"color": "PINK",
"stations": [
"강동구청역", "천호역", "잠실역"
]
}
]경로 조회
- 경로 조회
- 출발역과 도착역을 입력받는다.
- 최단거리경로와 총 거리, 요금 정보를 응답한다.
{
"shortestPath": [
"강동구청역", "천호역", "잠실역"
],
"distance": 10,
"fare": 1250
}