From bafc16a19f7abe23ed5a01f20453e8c728a9cdfd Mon Sep 17 00:00:00 2001 From: xrabcde Date: Sat, 19 Dec 2020 13:12:00 +0900 Subject: [PATCH 01/30] =?UTF-8?q?docs(README.md):=20docs/README.md?= =?UTF-8?q?=EC=97=90=20=EA=B8=B0=EB=8A=A5=20=EA=B5=AC=ED=98=84=20=EB=AA=A9?= =?UTF-8?q?=EB=A1=9D=20=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/README.md | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 docs/README.md diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 000000000..5e0421070 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,54 @@ +# 미션 - 지하철 노선도 경로 조회 미션 🚇 + +### 💻 기능 구현 목록 + +- 프로그램 시작 시, 사전 등록정보로 역, 노선, 구간정보 설정 + - `조건` 거리와 소요 시간은 양의 정수 단위는 km와 분 +- 메인화면 기능 목록(1, Q)과 입력 안내 문구 출력 +- 원하는 기능 입력 + - `예외` (1, Q) 외에 다른 값을 입력한 경우 + - `처리` 에러 문구([ERROR]) 출력 후 다시 입력 + +#### 1 경로 조회 +- 경로 조회 기능 목록(1, 2, B)과 입력 안내 문구 출력 +- 원하는 기능 입력 + - `예외` (1, 2, B) 외에 다른 값을 입력한 경우 + - `처리` 에러 문구([ERROR]) 출력 후 메인화면으로 돌아감 +- 출발역 입력 안내 문구 출력 및 출발역 입력 +- 도착역 입력 안내 문구 출력 및 도착역 입력 + - `예외` 출발역과 도착역이 같은 경우 + - `예외` 출발역과 도착역이 연결되어 있지 않은 경우 + - `처리` +- 경로 조회 + - `기준1` 최단거리 + - `기준2` 최소시간 +- 조회 결과 출력 + - `조건` 총 거리, 총 소요시간 함께 출력 + - 출력 후 메인화면으로 돌아감 + +#### 1 역관리 +- 역 관리 화면 기능 목록(1, 2, 3, B)과 입력 안내 문구 출력 +- 원하는 기능 입력 + - `예외` (1, 2, 3, B) 외에 다른 값을 입력한 경우 + - `처리` 에러 문구([ERROR]) 출력 후 메인화면으로 돌아감 + - `1 역등록` + - 역 이름 입력 받는 문구 출력 + - 등록할 역 이름 입력 + - `예외` 이미 등록된 역인 경우 + - `예외` 역 이름이 2글자 미만인 경우 + - `처리` 에러 문구([ERROR]) 출력 후 메인화면으로 돌아감 + - 등록완료 문구 출력 후 메인화면으로 돌아감 + - `2 역삭제` + - 역 이름 입력 받는 문구 출력 + - 삭제할 역 이름 입력 + - `예외` 등록되지 않은 역인 경우 + - `예외` 노선에 등록된 역인 경우 => 역삭제 불가 + - `처리` 에러 문구([ERROR]) 출력 후 메인화면으로 돌아감 + - 삭제완료 문구 출력 후 메인화면으로 돌아감 + - `3 역조회` + - 역 목록 출력 후 메인 화면으로 돌아감 + - `B 돌아가기` + - 메인화면으로 돌아감 + +#### Q 종료 +- 프로그램 종료 \ No newline at end of file From 5bae5d20a2cc597b3ae2d3d0f180bbbd38c2f542 Mon Sep 17 00:00:00 2001 From: xrabcde Date: Sat, 19 Dec 2020 13:29:58 +0900 Subject: [PATCH 02/30] =?UTF-8?q?feat(Line):=20=EB=85=B8=EC=84=A0=EC=9D=98?= =?UTF-8?q?=20=EC=97=AD=EC=9D=B4=EB=A6=84,=20=EA=B1=B0=EB=A6=AC,=20?= =?UTF-8?q?=EC=86=8C=EC=9A=94=EC=8B=9C=EA=B0=84=EC=9D=84=20=EC=A0=80?= =?UTF-8?q?=EC=9E=A5=ED=95=A0=20=EB=A6=AC=EC=8A=A4=ED=8A=B8=EB=93=A4=20?= =?UTF-8?q?=EC=84=A0=EC=96=B8=20=EB=B0=8F=20=EC=83=9D=EC=84=B1=ED=95=A8?= =?UTF-8?q?=EC=88=98=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/subway/domain/Line.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/main/java/subway/domain/Line.java b/src/main/java/subway/domain/Line.java index f4d738d5a..b99fb2f69 100644 --- a/src/main/java/subway/domain/Line.java +++ b/src/main/java/subway/domain/Line.java @@ -1,7 +1,13 @@ package subway.domain; +import java.util.ArrayList; +import java.util.List; + public class Line { private String name; + private List stationNames = new ArrayList<>(); + private List intervalDistances = new ArrayList<>(); + private List intervalTimes = new ArrayList<>(); public Line(String name) { this.name = name; @@ -11,5 +17,15 @@ public String getName() { return name; } - // 추가 기능 구현 + public void addStation(int index, String name) { + stationNames.add(index-1, name); + } + + public void addDistances(int index, int distance) { + intervalDistances.add(index, distance); + } + + public void addTimes(int index, int time) { + intervalTimes.add(index, time); + } } From 3ea7aa56460344295ee399234541caf6580f1797 Mon Sep 17 00:00:00 2001 From: xrabcde Date: Sat, 19 Dec 2020 13:30:39 +0900 Subject: [PATCH 03/30] =?UTF-8?q?feat(LineRepository):=20=EB=85=B8?= =?UTF-8?q?=EC=84=A0=EC=9D=B4=EB=A6=84,=20=EC=97=AD=EC=9D=B4=EB=A6=84,=20?= =?UTF-8?q?=EA=B1=B0=EB=A6=AC,=20=EC=86=8C=EC=9A=94=EC=8B=9C=EA=B0=84?= =?UTF-8?q?=EC=9D=84=20=EC=9E=85=EB=A0=A5=EB=B0=9B=EC=95=84=20=EB=85=B8?= =?UTF-8?q?=EC=84=A0=EC=9D=84=20=EC=83=9D=EC=84=B1=ED=95=98=EB=8A=94=20add?= =?UTF-8?q?Line=20=EB=A9=94=EC=86=8C=EB=93=9C=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/subway/domain/LineRepository.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main/java/subway/domain/LineRepository.java b/src/main/java/subway/domain/LineRepository.java index 2c4a723c9..a86f7e415 100644 --- a/src/main/java/subway/domain/LineRepository.java +++ b/src/main/java/subway/domain/LineRepository.java @@ -12,7 +12,17 @@ public static List lines() { return Collections.unmodifiableList(lines); } - public static void addLine(Line line) { +// public static void addLine(Line line) { +// lines.add(line); +// } + + public static void addLine(Line line, List names, List distances, List times) { + for (int i = 1; i <= names.size(); i++) + line.addStation(i, names.get(i-1)); + for (int i = 0; i < distances.size(); i++) { + line.addDistances(i, distances.get(i)); + line.addTimes(i, times.get(i)); + } lines.add(line); } From 2dd8462c6156d77ca128ff0eef70981f0d3caa43 Mon Sep 17 00:00:00 2001 From: xrabcde Date: Sat, 19 Dec 2020 13:32:09 +0900 Subject: [PATCH 04/30] =?UTF-8?q?feat(Init,=20Application):=20=ED=94=84?= =?UTF-8?q?=EB=A1=9C=EA=B7=B8=EB=9E=A8=20=EC=8B=9C=EC=9E=91=20=EC=8B=9C=20?= =?UTF-8?q?=EC=82=AC=EC=A0=84=20=EB=93=B1=EB=A1=9D=20=EC=A0=95=EB=B3=B4?= =?UTF-8?q?=EB=A1=9C=20=EC=B4=88=EA=B8=B0=ED=99=94=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/subway/Application.java | 6 ++++- src/main/java/subway/domain/Init.java | 36 +++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 src/main/java/subway/domain/Init.java diff --git a/src/main/java/subway/Application.java b/src/main/java/subway/Application.java index 0bcf786cc..57e571f4a 100644 --- a/src/main/java/subway/Application.java +++ b/src/main/java/subway/Application.java @@ -1,10 +1,14 @@ package subway; +import subway.domain.*; +//import subway.view.*; + import java.util.Scanner; public class Application { public static void main(String[] args) { final Scanner scanner = new Scanner(System.in); - // TODO: 프로그램 구현 + Init.initialize(); + //startProgram(scanner); } } diff --git a/src/main/java/subway/domain/Init.java b/src/main/java/subway/domain/Init.java new file mode 100644 index 000000000..5cd682068 --- /dev/null +++ b/src/main/java/subway/domain/Init.java @@ -0,0 +1,36 @@ +package subway.domain; + +import java.util.Arrays; +import java.util.List; + +public class Init { + public static final List line2Stations = Arrays.asList("교대역", "강남역", "역삼역"); + public static final List line2Distances = Arrays.asList(2, 2); + public static final List line2Times = Arrays.asList(3, 3); + public static final List line3Stations = Arrays.asList("교대역", "남부터미널역", "양재역", "매봉역"); + public static final List line3Distances = Arrays.asList(3, 6, 1); + public static final List line3Times = Arrays.asList(2, 5, 1); + public static final List lineSinbundangStations = Arrays.asList("강남역", "양재역", "양재시민의숲역"); + public static final List lineSinbundangDistances = Arrays.asList(2, 10); + public static final List lineSinbundangTimes = Arrays.asList(8, 3); + + public static void initialize() { + initializeStation(); + initializeLine(); + } + + public static void initializeStation() { + List names = Arrays.asList("교대역", "강남역", "역삼역", "남부터미널역", "양재역", "양재시민의숲역", "매봉역"); + for (String name : names) + StationRepository.addStation(new Station(name)); + } + + public static void initializeLine() { + Line line2 = new Line("2호선"); + LineRepository.addLine(line2, line2Stations, line2Distances, line2Times); + Line line3 = new Line("3호선"); + LineRepository.addLine(line3, line3Stations, line3Distances, line3Times); + Line lineSinbundang = new Line("신분당선"); + LineRepository.addLine(lineSinbundang, lineSinbundangStations, lineSinbundangDistances, lineSinbundangTimes); + } +} From 39f1c74105856bbd67964ce5cded2ec42419574b Mon Sep 17 00:00:00 2001 From: xrabcde Date: Sat, 19 Dec 2020 13:34:50 +0900 Subject: [PATCH 05/30] =?UTF-8?q?refactor:=20=EC=B4=88=EA=B8=B0=ED=99=94?= =?UTF-8?q?=20=ED=81=B4=EB=9E=98=EC=8A=A4=20Init=EC=9D=98=20=EC=83=81?= =?UTF-8?q?=EC=88=98=20=EB=A6=AC=ED=8C=A9=ED=86=A0=EB=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/subway/domain/Constants.java | 16 ++++++++++++++++ src/main/java/subway/domain/Init.java | 16 +++------------- 2 files changed, 19 insertions(+), 13 deletions(-) create mode 100644 src/main/java/subway/domain/Constants.java diff --git a/src/main/java/subway/domain/Constants.java b/src/main/java/subway/domain/Constants.java new file mode 100644 index 000000000..b32c13d2a --- /dev/null +++ b/src/main/java/subway/domain/Constants.java @@ -0,0 +1,16 @@ +package subway.domain; + +import java.util.Arrays; +import java.util.List; + +public class Constants { + public static final List line2Stations = Arrays.asList("교대역", "강남역", "역삼역"); + public static final List line2Distances = Arrays.asList(2, 2); + public static final List line2Times = Arrays.asList(3, 3); + public static final List line3Stations = Arrays.asList("교대역", "남부터미널역", "양재역", "매봉역"); + public static final List line3Distances = Arrays.asList(3, 6, 1); + public static final List line3Times = Arrays.asList(2, 5, 1); + public static final List lineSinbundangStations = Arrays.asList("강남역", "양재역", "양재시민의숲역"); + public static final List lineSinbundangDistances = Arrays.asList(2, 10); + public static final List lineSinbundangTimes = Arrays.asList(8, 3); +} diff --git a/src/main/java/subway/domain/Init.java b/src/main/java/subway/domain/Init.java index 5cd682068..4108f2aad 100644 --- a/src/main/java/subway/domain/Init.java +++ b/src/main/java/subway/domain/Init.java @@ -4,16 +4,6 @@ import java.util.List; public class Init { - public static final List line2Stations = Arrays.asList("교대역", "강남역", "역삼역"); - public static final List line2Distances = Arrays.asList(2, 2); - public static final List line2Times = Arrays.asList(3, 3); - public static final List line3Stations = Arrays.asList("교대역", "남부터미널역", "양재역", "매봉역"); - public static final List line3Distances = Arrays.asList(3, 6, 1); - public static final List line3Times = Arrays.asList(2, 5, 1); - public static final List lineSinbundangStations = Arrays.asList("강남역", "양재역", "양재시민의숲역"); - public static final List lineSinbundangDistances = Arrays.asList(2, 10); - public static final List lineSinbundangTimes = Arrays.asList(8, 3); - public static void initialize() { initializeStation(); initializeLine(); @@ -27,10 +17,10 @@ public static void initializeStation() { public static void initializeLine() { Line line2 = new Line("2호선"); - LineRepository.addLine(line2, line2Stations, line2Distances, line2Times); + LineRepository.addLine(line2, Constants.line2Stations, Constants.line2Distances, Constants.line2Times); Line line3 = new Line("3호선"); - LineRepository.addLine(line3, line3Stations, line3Distances, line3Times); + LineRepository.addLine(line3, Constants.line3Stations, Constants.line3Distances, Constants.line3Times); Line lineSinbundang = new Line("신분당선"); - LineRepository.addLine(lineSinbundang, lineSinbundangStations, lineSinbundangDistances, lineSinbundangTimes); + LineRepository.addLine(lineSinbundang, Constants.lineSinbundangStations, Constants.lineSinbundangDistances, Constants.lineSinbundangTimes); } } From 965a1b542cf8cb5e14d64966c8d8b18a54ff963f Mon Sep 17 00:00:00 2001 From: xrabcde Date: Sat, 19 Dec 2020 13:46:23 +0900 Subject: [PATCH 06/30] =?UTF-8?q?feat(Constants):=20=EB=A9=94=EC=9D=B8=20?= =?UTF-8?q?=EB=A9=94=EB=89=B4=EC=99=80=20=EC=84=9C=EB=B8=8C=EB=A9=94?= =?UTF-8?q?=EB=89=B4=EC=97=90=20=ED=95=B4=EB=8B=B9=ED=95=98=EB=8A=94=20?= =?UTF-8?q?=EC=83=81=EC=88=98=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/subway/domain/Constants.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/main/java/subway/domain/Constants.java b/src/main/java/subway/domain/Constants.java index b32c13d2a..dec765d67 100644 --- a/src/main/java/subway/domain/Constants.java +++ b/src/main/java/subway/domain/Constants.java @@ -13,4 +13,14 @@ public class Constants { public static final List lineSinbundangStations = Arrays.asList("강남역", "양재역", "양재시민의숲역"); public static final List lineSinbundangDistances = Arrays.asList(2, 10); public static final List lineSinbundangTimes = Arrays.asList(8, 3); + + public static final int FUNCTION_INPUT_ERROR = 0; + + public static final String FIND_PATH = "1"; + public static final String FINISH_PROGRAM = "Q"; + public static final List MAIN_FUNCTIONS = Arrays.asList(FIND_PATH, FINISH_PROGRAM); + public static final String MIN_DISTANCE = "1"; + public static final String MIN_TIME = "2"; + public static final String GO_BACK_MENU = "B"; + public static final List SUB_FUNCTIONS = Arrays.asList(MIN_DISTANCE, MIN_TIME, GO_BACK_MENU); } From e9799d0a49a67e9221f47570185e4d95b073f543 Mon Sep 17 00:00:00 2001 From: xrabcde Date: Sat, 19 Dec 2020 13:46:51 +0900 Subject: [PATCH 07/30] =?UTF-8?q?feat(View):=20=EB=A9=94=EC=9D=B8=ED=99=94?= =?UTF-8?q?=EB=A9=B4=20=EC=B6=9C=EB=A0=A5=EA=B3=BC=20=ED=94=84=EB=A1=9C?= =?UTF-8?q?=EA=B7=B8=EB=9E=A8=20=EC=A2=85=EB=A3=8C=EB=AC=B8=EA=B5=AC=20?= =?UTF-8?q?=EC=B6=9C=EB=A0=A5=ED=95=B4=EC=A3=BC=EB=8A=94=20View=20?= =?UTF-8?q?=ED=81=B4=EB=9E=98=EC=8A=A4=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/subway/view/View.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 src/main/java/subway/view/View.java diff --git a/src/main/java/subway/view/View.java b/src/main/java/subway/view/View.java new file mode 100644 index 000000000..458722319 --- /dev/null +++ b/src/main/java/subway/view/View.java @@ -0,0 +1,13 @@ +package subway.view; + +public class View { + public static void showMainMenu() { + System.out.println("\n## 메인 화면"); + System.out.println("1. 경로 조회"); + System.out.println("Q. 종료"); + } + + public static void finishProgram() { + System.out.println("## 프로그램 종료"); + } +} From a90fff36ee8fffb4b9590334fb454650319c572f Mon Sep 17 00:00:00 2001 From: xrabcde Date: Sat, 19 Dec 2020 13:47:07 +0900 Subject: [PATCH 08/30] =?UTF-8?q?feat(InputView):=20=EA=B8=B0=EB=8A=A5=20?= =?UTF-8?q?=EC=9E=85=EB=A0=A5=EC=97=90=20=EC=82=AC=EC=9A=A9=ED=95=A0=20Inp?= =?UTF-8?q?utView=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/subway/view/InputView.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 src/main/java/subway/view/InputView.java diff --git a/src/main/java/subway/view/InputView.java b/src/main/java/subway/view/InputView.java new file mode 100644 index 000000000..ea853a6e0 --- /dev/null +++ b/src/main/java/subway/view/InputView.java @@ -0,0 +1,19 @@ +package subway.view; + +import subway.domain.Errors; + +import java.util.List; +import java.util.Scanner; + +public class InputView { + public static String inputFunction(Scanner kbd, List functions) { + String input = "0"; + boolean check = false; + while(!check) { + System.out.println("\n## 원하는 기능을 선택하세요."); + input = kbd.nextLine(); + check = Errors.checkInput(input, functions); + } + return input; + } +} From f26b9fa3b23fa1f033177812570363e15d70f93a Mon Sep 17 00:00:00 2001 From: xrabcde Date: Sat, 19 Dec 2020 13:47:44 +0900 Subject: [PATCH 09/30] =?UTF-8?q?feat(Errors,=20ErrorMessage):=20=EC=9E=85?= =?UTF-8?q?=EB=A0=A5=EA=B0=92=20=EA=B2=80=EC=A6=9D=EC=9D=84=20=EC=9C=84?= =?UTF-8?q?=ED=95=9C=20Errors=EC=99=80=20=EC=97=90=EB=9F=AC=EB=A9=94?= =?UTF-8?q?=EC=8B=9C=EC=A7=80=20=EC=B6=9C=EB=A0=A5=EC=9D=84=20=EC=9C=84?= =?UTF-8?q?=ED=95=9C=20view/ErrorMessage=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/subway/domain/Errors.java | 16 ++++++++++++++++ src/main/java/subway/view/ErrorMessage.java | 10 ++++++++++ 2 files changed, 26 insertions(+) create mode 100644 src/main/java/subway/domain/Errors.java create mode 100644 src/main/java/subway/view/ErrorMessage.java diff --git a/src/main/java/subway/domain/Errors.java b/src/main/java/subway/domain/Errors.java new file mode 100644 index 000000000..cfdeb0b3b --- /dev/null +++ b/src/main/java/subway/domain/Errors.java @@ -0,0 +1,16 @@ +package subway.domain; + +import subway.view.ErrorMessage; + +import java.util.List; + +public class Errors { + public static boolean checkInput(String input, List functions) { + boolean check = true; + if (!functions.contains(input)) { + ErrorMessage.displayErrorMessage(Constants.FUNCTION_INPUT_ERROR); + check = false; + } + return check; + } +} diff --git a/src/main/java/subway/view/ErrorMessage.java b/src/main/java/subway/view/ErrorMessage.java new file mode 100644 index 000000000..39e46858f --- /dev/null +++ b/src/main/java/subway/view/ErrorMessage.java @@ -0,0 +1,10 @@ +package subway.view; + +import subway.domain.Constants; + +public class ErrorMessage { + public static void displayErrorMessage(int errorCase) { + if (errorCase == Constants.FUNCTION_INPUT_ERROR) + System.out.println("[ERROR] 선택할 수 없는 기능입니다."); + } +} From 3bb0c7663d2433b09997f22b5e18298ff0448188 Mon Sep 17 00:00:00 2001 From: xrabcde Date: Sat, 19 Dec 2020 13:48:20 +0900 Subject: [PATCH 10/30] =?UTF-8?q?feat(Application):=20=EB=A9=94=EC=9D=B8?= =?UTF-8?q?=ED=99=94=EB=A9=B4=20=EA=B8=B0=EB=8A=A5=20=EB=AA=A9=EB=A1=9D?= =?UTF-8?q?=EA=B3=BC=20=EC=9E=85=EB=A0=A5=20=EC=95=88=EB=82=B4=20=EB=AC=B8?= =?UTF-8?q?=EA=B5=AC=20=EC=B6=9C=EB=A0=A5,=20=EB=A9=94=EC=9D=B8=20?= =?UTF-8?q?=EA=B8=B0=EB=8A=A5=20=EC=9E=85=EB=A0=A5=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/subway/Application.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/main/java/subway/Application.java b/src/main/java/subway/Application.java index 57e571f4a..dc327829d 100644 --- a/src/main/java/subway/Application.java +++ b/src/main/java/subway/Application.java @@ -1,7 +1,7 @@ package subway; import subway.domain.*; -//import subway.view.*; +import subway.view.*; import java.util.Scanner; @@ -9,6 +9,13 @@ public class Application { public static void main(String[] args) { final Scanner scanner = new Scanner(System.in); Init.initialize(); - //startProgram(scanner); + startProgram(scanner); + } + + public static void startProgram(Scanner kbd) { + View.showMainMenu(); + String mainInput = InputView.inputFunction(kbd, Constants.MAIN_FUNCTIONS); + System.out.println(mainInput); + //goSubMenu(mainInput, kbd); } } From a0f465a53bb975fedcac800ebaa9b05d75675868 Mon Sep 17 00:00:00 2001 From: xrabcde Date: Sat, 19 Dec 2020 13:52:30 +0900 Subject: [PATCH 11/30] =?UTF-8?q?feat(View):=20=EA=B2=BD=EB=A1=9C=20?= =?UTF-8?q?=EC=A1=B0=ED=9A=8C=20=EB=AA=A9=EB=A1=9D=EC=9D=84=20=EC=B6=9C?= =?UTF-8?q?=EB=A0=A5=ED=95=B4=EC=A3=BC=EB=8A=94=20showPathMenu=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/subway/view/View.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/main/java/subway/view/View.java b/src/main/java/subway/view/View.java index 458722319..15f8bd4a5 100644 --- a/src/main/java/subway/view/View.java +++ b/src/main/java/subway/view/View.java @@ -7,6 +7,13 @@ public static void showMainMenu() { System.out.println("Q. 종료"); } + public static void showPathMenu() { + System.out.println("## 경로 기준"); + System.out.println("1. 최단 거리"); + System.out.println("2. 최소 시간"); + System.out.println("B. 돌아가기"); + } + public static void finishProgram() { System.out.println("## 프로그램 종료"); } From 5d5b723e8f0bc51306d00be4b30adc8549b31bee Mon Sep 17 00:00:00 2001 From: xrabcde Date: Sat, 19 Dec 2020 13:55:37 +0900 Subject: [PATCH 12/30] =?UTF-8?q?feat(PathManage):=20=EA=B2=BD=EB=A1=9C=20?= =?UTF-8?q?=EC=A1=B0=ED=9A=8C=20=EB=A9=94=EB=89=B4=EB=A5=BC=20=EA=B4=80?= =?UTF-8?q?=EB=A6=AC=ED=95=98=EB=8A=94=20PathManage=20=ED=81=B4=EB=9E=98?= =?UTF-8?q?=EC=8A=A4=20=EA=B5=AC=ED=98=84,=20=EC=9B=90=ED=95=98=EB=8A=94?= =?UTF-8?q?=20=EC=A1=B0=ED=9A=8C=EA=B8=B0=EC=A4=80=20=EC=9E=85=EB=A0=A5=20?= =?UTF-8?q?=EB=B0=8F=20=EC=98=88=EC=99=B8=EC=B2=98=EB=A6=AC=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/subway/PathManage.java | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 src/main/java/subway/PathManage.java diff --git a/src/main/java/subway/PathManage.java b/src/main/java/subway/PathManage.java new file mode 100644 index 000000000..a81c9f01d --- /dev/null +++ b/src/main/java/subway/PathManage.java @@ -0,0 +1,22 @@ +package subway; + +import subway.domain.Constants; +import subway.view.InputView; +import subway.view.View; + +import java.util.Scanner; + +import static subway.Application.startProgram; + +public class PathManage { + public static void managePath(Scanner kbd) { + View.showPathMenu(); + String input = InputView.inputFunction(kbd, Constants.SUB_FUNCTIONS); + if (input.equals(Constants.MIN_DISTANCE)) + //findMinDistance(kbd); + if (input.equals(Constants.MIN_TIME)) + //findMinTime(kbd); + if (input.equalsIgnoreCase(Constants.GO_BACK_MENU)) + startProgram(kbd); + } +} From 5dd65c723c31de3134b7cada4109f606420252e6 Mon Sep 17 00:00:00 2001 From: xrabcde Date: Sat, 19 Dec 2020 13:55:56 +0900 Subject: [PATCH 13/30] =?UTF-8?q?feat(Application):=20=EC=9B=90=ED=95=98?= =?UTF-8?q?=EB=8A=94=20=EC=84=9C=EB=B8=8C=20=EB=A9=94=EB=89=B4=20=EC=9E=85?= =?UTF-8?q?=EB=A0=A5=20=EB=B0=8F=20=EC=98=88=EC=99=B8=EC=B2=98=EB=A6=AC=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/subway/Application.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/main/java/subway/Application.java b/src/main/java/subway/Application.java index dc327829d..bb22c7e09 100644 --- a/src/main/java/subway/Application.java +++ b/src/main/java/subway/Application.java @@ -15,7 +15,14 @@ public static void main(String[] args) { public static void startProgram(Scanner kbd) { View.showMainMenu(); String mainInput = InputView.inputFunction(kbd, Constants.MAIN_FUNCTIONS); - System.out.println(mainInput); - //goSubMenu(mainInput, kbd); + goSubMenu(mainInput, kbd); + } + + public static void goSubMenu(String input, Scanner kbd) { + System.out.println(); + if (input.equals(Constants.FIND_PATH)) + PathManage.managePath(kbd); + if (input.equalsIgnoreCase(Constants.FINISH_PROGRAM)) + View.finishProgram(); } } From 7197e11dfbb391694943d6982e6c4098dac2940c Mon Sep 17 00:00:00 2001 From: xrabcde Date: Sat, 19 Dec 2020 13:56:25 +0900 Subject: [PATCH 14/30] =?UTF-8?q?docs(README.md):=20README=20=EC=98=88?= =?UTF-8?q?=EC=99=B8=EC=B2=98=EB=A6=AC=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/README.md b/docs/README.md index 5e0421070..129d795b1 100644 --- a/docs/README.md +++ b/docs/README.md @@ -3,17 +3,17 @@ ### 💻 기능 구현 목록 - 프로그램 시작 시, 사전 등록정보로 역, 노선, 구간정보 설정 - - `조건` 거리와 소요 시간은 양의 정수 단위는 km와 분 + - `조건` 거리와 소요 시간은 Integer, 단위는 km와 분 - 메인화면 기능 목록(1, Q)과 입력 안내 문구 출력 -- 원하는 기능 입력 +- 원하는 메인 메뉴 입력 - `예외` (1, Q) 외에 다른 값을 입력한 경우 - `처리` 에러 문구([ERROR]) 출력 후 다시 입력 #### 1 경로 조회 - 경로 조회 기능 목록(1, 2, B)과 입력 안내 문구 출력 -- 원하는 기능 입력 +- 원하는 서브 메뉴 입력 - `예외` (1, 2, B) 외에 다른 값을 입력한 경우 - - `처리` 에러 문구([ERROR]) 출력 후 메인화면으로 돌아감 + - `처리` 에러 문구([ERROR]) 출력 후 다시 입력 - 출발역 입력 안내 문구 출력 및 출발역 입력 - 도착역 입력 안내 문구 출력 및 도착역 입력 - `예외` 출발역과 도착역이 같은 경우 From c8330d6873a0ebc0499bbcc8146876127a82e2f7 Mon Sep 17 00:00:00 2001 From: xrabcde Date: Sat, 19 Dec 2020 14:06:20 +0900 Subject: [PATCH 15/30] =?UTF-8?q?feat(StationRepository):=20=EB=93=B1?= =?UTF-8?q?=EB=A1=9D=EB=90=9C=20=EC=97=AD=EC=9D=B8=EC=A7=80=20=EA=B2=80?= =?UTF-8?q?=EC=A6=9D=ED=95=98=EA=B8=B0=20=EC=9C=84=ED=95=B4=20isExist=20?= =?UTF-8?q?=EB=A9=94=EC=86=8C=EB=93=9C=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/subway/domain/StationRepository.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/subway/domain/StationRepository.java b/src/main/java/subway/domain/StationRepository.java index 8ed9d103f..be95077ae 100644 --- a/src/main/java/subway/domain/StationRepository.java +++ b/src/main/java/subway/domain/StationRepository.java @@ -23,4 +23,8 @@ public static boolean deleteStation(String name) { public static void deleteAll() { stations.clear(); } + + public static boolean isExist(String name) { + return stations.stream().map(Station::getName).anyMatch(x -> x.equals(name)); + } } From f8c84c7193b8949a92b84218f29b0666a779f804 Mon Sep 17 00:00:00 2001 From: xrabcde Date: Sat, 19 Dec 2020 14:17:50 +0900 Subject: [PATCH 16/30] =?UTF-8?q?feat(InputView):=20=EC=9E=85=EB=A0=A5?= =?UTF-8?q?=EA=B0=92=20=EA=B2=80=EC=A6=9D=20=ED=95=A8=EC=88=98=EB=A5=BC=20?= =?UTF-8?q?=EB=B0=98=EB=B3=B5=EB=AC=B8=EC=97=90=EC=84=9C=20=EC=9E=AC?= =?UTF-8?q?=EA=B7=80=ED=95=A8=EC=88=98=EB=A1=9C=20=EC=88=98=EC=A0=95,=20?= =?UTF-8?q?=EC=B6=9C=EB=B0=9C/=EB=8F=84=EC=B0=A9=EC=97=AD=20=EC=9E=85?= =?UTF-8?q?=EB=A0=A5=EB=B0=9B=EB=8A=94=20=EB=A9=94=EC=86=8C=EB=93=9C=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/subway/view/InputView.java | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/src/main/java/subway/view/InputView.java b/src/main/java/subway/view/InputView.java index ea853a6e0..22721c477 100644 --- a/src/main/java/subway/view/InputView.java +++ b/src/main/java/subway/view/InputView.java @@ -8,12 +8,27 @@ public class InputView { public static String inputFunction(Scanner kbd, List functions) { String input = "0"; - boolean check = false; - while(!check) { + try { System.out.println("\n## 원하는 기능을 선택하세요."); input = kbd.nextLine(); - check = Errors.checkInput(input, functions); + Errors.checkInput(input, functions); + } catch (Exception e) { + inputFunction(kbd, functions); } return input; } + + public static void inputSrcDest(Scanner kbd) { + try { + System.out.println("\n## 출발역을 입력하세요."); + String srcStation = kbd.nextLine(); + Errors.checkExistStation(srcStation); + System.out.println("\n## 도착역을 입력하세요."); + String destStation = kbd.nextLine(); + Errors.checkExistStation(destStation); + Errors.checkSameName(srcStation, destStation); + } catch (Exception e) { + inputSrcDest(kbd); + } + } } From ecd6d5630e5d2de016e16b9396d010401eb05cca Mon Sep 17 00:00:00 2001 From: xrabcde Date: Sat, 19 Dec 2020 14:25:25 +0900 Subject: [PATCH 17/30] =?UTF-8?q?feat(PathManage,=20Constants,=20Errors):?= =?UTF-8?q?=20=EC=B5=9C=EB=8B=A8=20=EA=B2=BD=EB=A1=9C=20=EC=A1=B0=ED=9D=AC?= =?UTF-8?q?=EB=A5=BC=20=EC=9C=84=ED=95=9C=20=EC=B6=9C=EB=B0=9C=EC=97=AD,?= =?UTF-8?q?=20=EB=8F=84=EC=B0=A9=EC=97=AD=20=EC=9E=85=EB=A0=A5=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84,=20=EB=8F=99=EC=9D=BC=20=EC=9D=B4=EB=A6=84=20?= =?UTF-8?q?=EC=98=88=EC=99=B8=EC=B2=98=EB=A6=AC=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/subway/PathManage.java | 27 +++++++++++++++++++--- src/main/java/subway/domain/Constants.java | 2 ++ src/main/java/subway/domain/Errors.java | 20 ++++++++++++---- 3 files changed, 42 insertions(+), 7 deletions(-) diff --git a/src/main/java/subway/PathManage.java b/src/main/java/subway/PathManage.java index a81c9f01d..6c2fa69f4 100644 --- a/src/main/java/subway/PathManage.java +++ b/src/main/java/subway/PathManage.java @@ -1,6 +1,9 @@ package subway; import subway.domain.Constants; +import subway.domain.Errors; +import subway.domain.Station; +import subway.domain.StationRepository; import subway.view.InputView; import subway.view.View; @@ -13,10 +16,28 @@ public static void managePath(Scanner kbd) { View.showPathMenu(); String input = InputView.inputFunction(kbd, Constants.SUB_FUNCTIONS); if (input.equals(Constants.MIN_DISTANCE)) - //findMinDistance(kbd); + findMinDistance(kbd); if (input.equals(Constants.MIN_TIME)) - //findMinTime(kbd); - if (input.equalsIgnoreCase(Constants.GO_BACK_MENU)) + findMinTime(kbd); + if (input.equals(Constants.GO_BACK_MENU)) startProgram(kbd); } + + public static void findMinDistance(Scanner kbd) { + try { + InputView.inputSrcDest(kbd); + startProgram(kbd); + } catch (Exception e) { + startProgram(kbd); + } + } + + public static void findMinTime(Scanner kbd) { + try { + InputView.inputSrcDest(kbd); + startProgram(kbd); + } catch (Exception e) { + startProgram(kbd); + } + } } diff --git a/src/main/java/subway/domain/Constants.java b/src/main/java/subway/domain/Constants.java index dec765d67..cbc4fd8bf 100644 --- a/src/main/java/subway/domain/Constants.java +++ b/src/main/java/subway/domain/Constants.java @@ -15,6 +15,8 @@ public class Constants { public static final List lineSinbundangTimes = Arrays.asList(8, 3); public static final int FUNCTION_INPUT_ERROR = 0; + public static final int NO_SUCH_NAME_ERROR = 1; + public static final int SAME_NAME_ERROR = 2; public static final String FIND_PATH = "1"; public static final String FINISH_PROGRAM = "Q"; diff --git a/src/main/java/subway/domain/Errors.java b/src/main/java/subway/domain/Errors.java index cfdeb0b3b..8f330c471 100644 --- a/src/main/java/subway/domain/Errors.java +++ b/src/main/java/subway/domain/Errors.java @@ -5,12 +5,24 @@ import java.util.List; public class Errors { - public static boolean checkInput(String input, List functions) { - boolean check = true; + public static void checkInput(String input, List functions) { if (!functions.contains(input)) { ErrorMessage.displayErrorMessage(Constants.FUNCTION_INPUT_ERROR); - check = false; + throw new IllegalArgumentException(); + } + } + + public static void checkExistStation(String name) { + if (!StationRepository.isExist(name)) { + ErrorMessage.displayErrorMessage(Constants.NO_SUCH_NAME_ERROR); + throw new IllegalArgumentException(); + } + } + + public static void checkSameName(String firstName, String lastName) { + if (firstName.equals(lastName)) { + ErrorMessage.displayErrorMessage(Constants.SAME_NAME_ERROR); + throw new IllegalArgumentException(); } - return check; } } From bffcb3ef89db1a3441fd34c770252a3fe3078ae3 Mon Sep 17 00:00:00 2001 From: xrabcde Date: Sat, 19 Dec 2020 14:25:43 +0900 Subject: [PATCH 18/30] =?UTF-8?q?docs(README.md):=20README=20=EC=98=88?= =?UTF-8?q?=EC=99=B8=EC=B2=98=EB=A6=AC=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/README.md b/docs/README.md index 129d795b1..1f9901113 100644 --- a/docs/README.md +++ b/docs/README.md @@ -15,10 +15,14 @@ - `예외` (1, 2, B) 외에 다른 값을 입력한 경우 - `처리` 에러 문구([ERROR]) 출력 후 다시 입력 - 출발역 입력 안내 문구 출력 및 출발역 입력 + - `예외` 등록되지 않은 역인 경우 + - `처리` 에러 문구([ERROR]) 출력 후 다시 입력 - 도착역 입력 안내 문구 출력 및 도착역 입력 + - `예외` 등록되지 않은 역인 경우 + - `처리` 에러 문구([ERROR]) 출력 후 다시 입력 - `예외` 출발역과 도착역이 같은 경우 - `예외` 출발역과 도착역이 연결되어 있지 않은 경우 - - `처리` + - `처리` 에러 문구([ERROR]) 출력 후 다시 입력 - 경로 조회 - `기준1` 최단거리 - `기준2` 최소시간 From 6cc3169a751b196057dd7e130a4bb5ec0d06b16d Mon Sep 17 00:00:00 2001 From: xrabcde Date: Sat, 19 Dec 2020 14:30:47 +0900 Subject: [PATCH 19/30] =?UTF-8?q?feat(Line):=20=ED=95=B4=EB=8B=B9=20?= =?UTF-8?q?=EB=85=B8=EC=84=A0=EC=9D=98=20=EC=97=AD=EC=9D=84=20=EC=88=9C?= =?UTF-8?q?=EC=84=9C=EB=8C=80=EB=A1=9C=20=EC=B6=9C=EB=A0=A5=ED=95=B4?= =?UTF-8?q?=EC=A3=BC=EB=8A=94=20displayLine=20=EB=A9=94=EC=86=8C=EB=93=9C?= =?UTF-8?q?=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/subway/domain/Line.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/java/subway/domain/Line.java b/src/main/java/subway/domain/Line.java index b99fb2f69..199639358 100644 --- a/src/main/java/subway/domain/Line.java +++ b/src/main/java/subway/domain/Line.java @@ -28,4 +28,10 @@ public void addDistances(int index, int distance) { public void addTimes(int index, int time) { intervalTimes.add(index, time); } + + public void displayLine() { + for (String station : stationNames) + System.out.println("[INFO] " + station); + System.out.println(); + } } From b09fd13061cf6d193c555184a2a62add602d3356 Mon Sep 17 00:00:00 2001 From: xrabcde Date: Sat, 19 Dec 2020 14:31:10 +0900 Subject: [PATCH 20/30] =?UTF-8?q?feat(View):=20=EC=B5=9C=EB=8B=A8=EA=B2=BD?= =?UTF-8?q?=EB=A1=9C=20=EC=A1=B0=ED=9A=8C=20=EA=B2=B0=EA=B3=BC=EB=A5=BC=20?= =?UTF-8?q?=EC=B6=9C=EB=A0=A5=ED=95=B4=EC=A3=BC=EB=8A=94=20displayPath=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/subway/view/View.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/main/java/subway/view/View.java b/src/main/java/subway/view/View.java index 15f8bd4a5..65b3c2583 100644 --- a/src/main/java/subway/view/View.java +++ b/src/main/java/subway/view/View.java @@ -1,5 +1,12 @@ package subway.view; +import subway.domain.Line; +import subway.domain.LineRepository; + +import java.util.Scanner; + +import static subway.Application.startProgram; + public class View { public static void showMainMenu() { System.out.println("\n## 메인 화면"); @@ -14,6 +21,16 @@ public static void showPathMenu() { System.out.println("B. 돌아가기"); } + public static void displayPath(Scanner kbd, int distance, int time, Line line) { + System.out.println("## 조회 결과"); + System.out.println("[INFO] ---"); + System.out.println("[INFO] 총 거리: "+ distance + "km"); + System.out.println("[INFO] 총 소요 시간: "+ time + "분"); + System.out.println("[INFO] ---"); + line.displayLine(); + startProgram(kbd); + } + public static void finishProgram() { System.out.println("## 프로그램 종료"); } From dfb3d8ff88f8290c2fdbaa9f4b73fb330f6bf818 Mon Sep 17 00:00:00 2001 From: xrabcde Date: Sat, 19 Dec 2020 14:32:25 +0900 Subject: [PATCH 21/30] =?UTF-8?q?docs(README.md):=20README=20=EB=B6=88?= =?UTF-8?q?=ED=95=84=EC=9A=94=ED=95=9C=20=EB=B6=80=EB=B6=84=20=EC=82=AD?= =?UTF-8?q?=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/README.md | 24 ------------------------ 1 file changed, 24 deletions(-) diff --git a/docs/README.md b/docs/README.md index 1f9901113..f311dcb14 100644 --- a/docs/README.md +++ b/docs/README.md @@ -29,30 +29,6 @@ - 조회 결과 출력 - `조건` 총 거리, 총 소요시간 함께 출력 - 출력 후 메인화면으로 돌아감 - -#### 1 역관리 -- 역 관리 화면 기능 목록(1, 2, 3, B)과 입력 안내 문구 출력 -- 원하는 기능 입력 - - `예외` (1, 2, 3, B) 외에 다른 값을 입력한 경우 - - `처리` 에러 문구([ERROR]) 출력 후 메인화면으로 돌아감 - - `1 역등록` - - 역 이름 입력 받는 문구 출력 - - 등록할 역 이름 입력 - - `예외` 이미 등록된 역인 경우 - - `예외` 역 이름이 2글자 미만인 경우 - - `처리` 에러 문구([ERROR]) 출력 후 메인화면으로 돌아감 - - 등록완료 문구 출력 후 메인화면으로 돌아감 - - `2 역삭제` - - 역 이름 입력 받는 문구 출력 - - 삭제할 역 이름 입력 - - `예외` 등록되지 않은 역인 경우 - - `예외` 노선에 등록된 역인 경우 => 역삭제 불가 - - `처리` 에러 문구([ERROR]) 출력 후 메인화면으로 돌아감 - - 삭제완료 문구 출력 후 메인화면으로 돌아감 - - `3 역조회` - - 역 목록 출력 후 메인 화면으로 돌아감 - - `B 돌아가기` - - 메인화면으로 돌아감 #### Q 종료 - 프로그램 종료 \ No newline at end of file From 714da4f6b722496597c4e3a5f46adf27c6bb35a7 Mon Sep 17 00:00:00 2001 From: xrabcde Date: Sat, 19 Dec 2020 17:28:15 +0900 Subject: [PATCH 22/30] =?UTF-8?q?feat(Init):=20=EC=86=8C=EC=9A=94=20?= =?UTF-8?q?=EC=8B=9C=EA=B0=84=EA=B3=BC=20=EA=B1=B0=EB=A6=AC=EC=97=90=20?= =?UTF-8?q?=EB=8C=80=ED=95=9C=20=EB=8B=A4=EC=9D=B5=EC=8A=A4=ED=8A=B8?= =?UTF-8?q?=EB=9D=BC=20graph=20=EC=B4=88=EA=B8=B0=EC=84=A4=EC=A0=95?= =?UTF-8?q?=EC=97=90=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/subway/domain/Init.java | 71 +++++++++++++++++++++++---- 1 file changed, 61 insertions(+), 10 deletions(-) diff --git a/src/main/java/subway/domain/Init.java b/src/main/java/subway/domain/Init.java index 4108f2aad..48ec96a93 100644 --- a/src/main/java/subway/domain/Init.java +++ b/src/main/java/subway/domain/Init.java @@ -1,26 +1,77 @@ package subway.domain; -import java.util.Arrays; -import java.util.List; +import org.jgrapht.alg.shortestpath.DijkstraShortestPath; +import org.jgrapht.graph.DefaultWeightedEdge; +import org.jgrapht.graph.WeightedMultigraph; + public class Init { + public static DijkstraShortestPath dijkstraDistance; + public static DijkstraShortestPath dijkstraTime; + public static void initialize() { initializeStation(); initializeLine(); + initializeTimeGraph(); + dijkstraDistance = initializeDistanceGraph(); + dijkstraTime = initializeTimeGraph(); } public static void initializeStation() { - List names = Arrays.asList("교대역", "강남역", "역삼역", "남부터미널역", "양재역", "양재시민의숲역", "매봉역"); - for (String name : names) + for (String name : Constants.STATIONS) StationRepository.addStation(new Station(name)); } public static void initializeLine() { - Line line2 = new Line("2호선"); - LineRepository.addLine(line2, Constants.line2Stations, Constants.line2Distances, Constants.line2Times); - Line line3 = new Line("3호선"); - LineRepository.addLine(line3, Constants.line3Stations, Constants.line3Distances, Constants.line3Times); - Line lineSinbundang = new Line("신분당선"); - LineRepository.addLine(lineSinbundang, Constants.lineSinbundangStations, Constants.lineSinbundangDistances, Constants.lineSinbundangTimes); + Line line2 = new Line(Constants.LINE_2); + LineRepository.addLine(line2, Constants.LINE_2_STATIONS); + Line line3 = new Line(Constants.LINE_3); + LineRepository.addLine(line3, Constants.LINE_3_STATIONS); + Line lineSinbundang = new Line(Constants.LINE_SINBUNDANG); + LineRepository.addLine(lineSinbundang, Constants.LINE_SINBUNDANG_STATIONS); + } + + public static DijkstraShortestPath initializeDistanceGraph() { + WeightedMultigraph graph = initializeGraph(); + int edges = 0; + for (Line line : LineRepository.lines()) + edges += line.getSize() - 1; + for (int i = 0; i < edges; i++) { + graph.setEdgeWeight(graph.addEdge("교대역", "강남역"), 2); + graph.setEdgeWeight(graph.addEdge("강남역", "역삼역"), 2); + graph.setEdgeWeight(graph.addEdge("교대역", "남부터미널역"), 3); + graph.setEdgeWeight(graph.addEdge("남부터미널역", "양재역"), 6); + graph.setEdgeWeight(graph.addEdge("양재역", "매봉역"), 1); + graph.setEdgeWeight(graph.addEdge("강남역", "양재역"), 2); + graph.setEdgeWeight(graph.addEdge("양재역", "양재시민의숲역"), 8); + } + DijkstraShortestPath dijkstraDistance = new DijkstraShortestPath(graph); + return dijkstraDistance; + } + + public static DijkstraShortestPath initializeTimeGraph() { + WeightedMultigraph graph = initializeGraph(); + int edges = 0; + for (Line line : LineRepository.lines()) + edges += line.getSize() - 1; + for (int i = 0; i < edges; i++) { + graph.setEdgeWeight(graph.addEdge("교대역", "강남역"), 3); + graph.setEdgeWeight(graph.addEdge("강남역", "역삼역"), 3); + graph.setEdgeWeight(graph.addEdge("교대역", "남부터미널역"), 2); + graph.setEdgeWeight(graph.addEdge("남부터미널역", "양재역"), 5); + graph.setEdgeWeight(graph.addEdge("양재역", "매봉역"), 1); + graph.setEdgeWeight(graph.addEdge("강남역", "양재역"), 10); + graph.setEdgeWeight(graph.addEdge("양재역", "양재시민의숲역"), 3); + } + DijkstraShortestPath dijkstraTime = new DijkstraShortestPath(graph); + return dijkstraTime; + } + + public static WeightedMultigraph initializeGraph() { + WeightedMultigraph graph + = new WeightedMultigraph(DefaultWeightedEdge.class); + for (String name : Constants.STATIONS) + graph.addVertex(name); + return graph; } } From 724ca88867a590aa2d9c04a4d39c0593a5aa072f Mon Sep 17 00:00:00 2001 From: xrabcde Date: Sat, 19 Dec 2020 17:29:21 +0900 Subject: [PATCH 23/30] =?UTF-8?q?feat(Line,=20LineRepository):=20=ED=95=84?= =?UTF-8?q?=EC=9A=94=EC=97=86=EB=8A=94=20=EB=B3=80=EC=88=98=EB=93=A4=20?= =?UTF-8?q?=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/subway/domain/Constants.java | 18 +++++++-------- src/main/java/subway/domain/Line.java | 22 +++++++++++-------- .../java/subway/domain/LineRepository.java | 14 +++++------- 3 files changed, 27 insertions(+), 27 deletions(-) diff --git a/src/main/java/subway/domain/Constants.java b/src/main/java/subway/domain/Constants.java index cbc4fd8bf..fce02936c 100644 --- a/src/main/java/subway/domain/Constants.java +++ b/src/main/java/subway/domain/Constants.java @@ -4,15 +4,15 @@ import java.util.List; public class Constants { - public static final List line2Stations = Arrays.asList("교대역", "강남역", "역삼역"); - public static final List line2Distances = Arrays.asList(2, 2); - public static final List line2Times = Arrays.asList(3, 3); - public static final List line3Stations = Arrays.asList("교대역", "남부터미널역", "양재역", "매봉역"); - public static final List line3Distances = Arrays.asList(3, 6, 1); - public static final List line3Times = Arrays.asList(2, 5, 1); - public static final List lineSinbundangStations = Arrays.asList("강남역", "양재역", "양재시민의숲역"); - public static final List lineSinbundangDistances = Arrays.asList(2, 10); - public static final List lineSinbundangTimes = Arrays.asList(8, 3); + public static final List STATIONS = Arrays.asList("교대역", "강남역", "역삼역", "남부터미널역", "양재역", "양재시민의숲역", "매봉역"); + public static final String LINE_2 = "2호선"; + public static final List LINE_2_STATIONS = Arrays.asList("교대역", "강남역", "역삼역"); + public static final String LINE_3 = "3호선"; + public static final List LINE_3_STATIONS = Arrays.asList("교대역", "남부터미널역", "양재역", "매봉역"); + public static final String LINE_SINBUNDANG = "신분당선"; + public static final List LINE_SINBUNDANG_STATIONS = Arrays.asList("강남역", "양재역", "양재시민의숲역"); + public static final String PATH_DISTANCE = "DISTANCE"; + public static final String PATH_TIME = "TIME"; public static final int FUNCTION_INPUT_ERROR = 0; public static final int NO_SUCH_NAME_ERROR = 1; diff --git a/src/main/java/subway/domain/Line.java b/src/main/java/subway/domain/Line.java index 199639358..4894b144e 100644 --- a/src/main/java/subway/domain/Line.java +++ b/src/main/java/subway/domain/Line.java @@ -6,8 +6,8 @@ public class Line { private String name; private List stationNames = new ArrayList<>(); - private List intervalDistances = new ArrayList<>(); - private List intervalTimes = new ArrayList<>(); +// private List intervalDistances = new ArrayList<>(); +// private List intervalTimes = new ArrayList<>(); public Line(String name) { this.name = name; @@ -21,17 +21,21 @@ public void addStation(int index, String name) { stationNames.add(index-1, name); } - public void addDistances(int index, int distance) { - intervalDistances.add(index, distance); - } - - public void addTimes(int index, int time) { - intervalTimes.add(index, time); - } +// public void addDistances(int index, int distance) { +// intervalDistances.add(index, distance); +// } +// +// public void addTimes(int index, int time) { +// intervalTimes.add(index, time); +// } public void displayLine() { for (String station : stationNames) System.out.println("[INFO] " + station); System.out.println(); } + + public int getSize() { + return stationNames.size(); + } } diff --git a/src/main/java/subway/domain/LineRepository.java b/src/main/java/subway/domain/LineRepository.java index a86f7e415..7c1cda0cc 100644 --- a/src/main/java/subway/domain/LineRepository.java +++ b/src/main/java/subway/domain/LineRepository.java @@ -12,17 +12,13 @@ public static List lines() { return Collections.unmodifiableList(lines); } -// public static void addLine(Line line) { -// lines.add(line); -// } - - public static void addLine(Line line, List names, List distances, List times) { + public static void addLine(Line line, List names) { for (int i = 1; i <= names.size(); i++) line.addStation(i, names.get(i-1)); - for (int i = 0; i < distances.size(); i++) { - line.addDistances(i, distances.get(i)); - line.addTimes(i, times.get(i)); - } +// for (int i = 0; i < distances.size(); i++) { +// line.addDistances(i, distances.get(i)); +// line.addTimes(i, times.get(i)); +// } lines.add(line); } From 6f3378c60d67ff69ab920ebe157c217fc00bfbee Mon Sep 17 00:00:00 2001 From: xrabcde Date: Sat, 19 Dec 2020 17:29:37 +0900 Subject: [PATCH 24/30] =?UTF-8?q?feat(JGraphtTest):=20=EC=B5=9C=EB=8B=A8?= =?UTF-8?q?=20=EA=B2=BD=EB=A1=9C=EC=9D=98=20weight=20=EC=B6=9C=EB=A0=A5=20?= =?UTF-8?q?=ED=85=8C=EC=8A=A4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/test/java/subway/JGraphtTest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/test/java/subway/JGraphtTest.java b/src/test/java/subway/JGraphtTest.java index 4f5f76536..f911b0854 100644 --- a/src/test/java/subway/JGraphtTest.java +++ b/src/test/java/subway/JGraphtTest.java @@ -23,6 +23,7 @@ public void getDijkstraShortestPath() { DijkstraShortestPath dijkstraShortestPath = new DijkstraShortestPath(graph); List shortestPath = dijkstraShortestPath.getPath("v3", "v1").getVertexList(); + System.out.println(dijkstraShortestPath.getPath("v3", "v1").getWeight()); assertThat(shortestPath.size()).isEqualTo(3); } } From 403b3ce78b147fe602ecc52a8370ed29a6db1a1e Mon Sep 17 00:00:00 2001 From: xrabcde Date: Sat, 19 Dec 2020 17:29:59 +0900 Subject: [PATCH 25/30] =?UTF-8?q?fix(InputView):=20=EC=B6=9C=EB=B0=9C?= =?UTF-8?q?=EC=97=AD=20=EB=8F=84=EC=B0=A9=EC=97=AD=20=EC=9E=85=EB=A0=A5?= =?UTF-8?q?=EB=B0=9B=EB=8A=94=20=EB=A9=94=EC=86=8C=EB=93=9C=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/subway/view/InputView.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/main/java/subway/view/InputView.java b/src/main/java/subway/view/InputView.java index 22721c477..c35f52e83 100644 --- a/src/main/java/subway/view/InputView.java +++ b/src/main/java/subway/view/InputView.java @@ -18,17 +18,19 @@ public static String inputFunction(Scanner kbd, List functions) { return input; } - public static void inputSrcDest(Scanner kbd) { + public static String[] inputSrcDest(Scanner kbd) { + String[] stations = new String[2]; try { System.out.println("\n## 출발역을 입력하세요."); - String srcStation = kbd.nextLine(); - Errors.checkExistStation(srcStation); + stations[0] = kbd.nextLine(); + Errors.checkExistStation(stations[0]); System.out.println("\n## 도착역을 입력하세요."); - String destStation = kbd.nextLine(); - Errors.checkExistStation(destStation); - Errors.checkSameName(srcStation, destStation); + stations[1] = kbd.nextLine(); + Errors.checkExistStation(stations[1]); + Errors.checkSameName(stations[0], stations[1]); } catch (Exception e) { inputSrcDest(kbd); } + return stations; } } From 24ce8f643b92f1c150a00fa74a0bbdaf6181d5f5 Mon Sep 17 00:00:00 2001 From: xrabcde Date: Sat, 19 Dec 2020 17:32:06 +0900 Subject: [PATCH 26/30] =?UTF-8?q?fix(View):=20=EC=A1=B0=ED=9A=8C=20?= =?UTF-8?q?=EA=B2=B0=EA=B3=BC=20=EC=B6=9C=EB=A0=A5=20=EB=A9=94=EC=86=8C?= =?UTF-8?q?=EB=93=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/subway/view/View.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/main/java/subway/view/View.java b/src/main/java/subway/view/View.java index 65b3c2583..5be64e117 100644 --- a/src/main/java/subway/view/View.java +++ b/src/main/java/subway/view/View.java @@ -1,7 +1,6 @@ package subway.view; import subway.domain.Line; -import subway.domain.LineRepository; import java.util.Scanner; @@ -21,14 +20,13 @@ public static void showPathMenu() { System.out.println("B. 돌아가기"); } - public static void displayPath(Scanner kbd, int distance, int time, Line line) { - System.out.println("## 조회 결과"); + public static void displayPath(Line line, int time, int distance) { + System.out.println("\n## 조회 결과"); System.out.println("[INFO] ---"); System.out.println("[INFO] 총 거리: "+ distance + "km"); System.out.println("[INFO] 총 소요 시간: "+ time + "분"); System.out.println("[INFO] ---"); line.displayLine(); - startProgram(kbd); } public static void finishProgram() { From f147b79663068282451a3a8bd73f0dfdb2a9c6ee Mon Sep 17 00:00:00 2001 From: xrabcde Date: Sat, 19 Dec 2020 17:32:42 +0900 Subject: [PATCH 27/30] =?UTF-8?q?feat(PathManage):=20=EC=B5=9C=EB=8B=A8=20?= =?UTF-8?q?=EA=B2=BD=EB=A1=9C=20=EC=B6=9C=EB=A0=A5=20=EB=A9=94=EC=86=8C?= =?UTF-8?q?=EB=93=9C=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/subway/PathManage.java | 31 +++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/src/main/java/subway/PathManage.java b/src/main/java/subway/PathManage.java index 6c2fa69f4..f954f6deb 100644 --- a/src/main/java/subway/PathManage.java +++ b/src/main/java/subway/PathManage.java @@ -1,12 +1,13 @@ package subway; import subway.domain.Constants; -import subway.domain.Errors; -import subway.domain.Station; -import subway.domain.StationRepository; +import subway.domain.Init; +import subway.domain.Line; +import subway.domain.LineRepository; import subway.view.InputView; import subway.view.View; +import java.util.List; import java.util.Scanner; import static subway.Application.startProgram; @@ -25,7 +26,9 @@ public static void managePath(Scanner kbd) { public static void findMinDistance(Scanner kbd) { try { - InputView.inputSrcDest(kbd); + String[] stations = InputView.inputSrcDest(kbd); + List shortestPath = Init.dijkstraDistance.getPath(stations[0], stations[1]).getVertexList(); + getMinPath(Constants.PATH_DISTANCE, shortestPath, getMinValue(stations)); startProgram(kbd); } catch (Exception e) { startProgram(kbd); @@ -34,10 +37,28 @@ public static void findMinDistance(Scanner kbd) { public static void findMinTime(Scanner kbd) { try { - InputView.inputSrcDest(kbd); + String[] stations = InputView.inputSrcDest(kbd); + List shortestPath = Init.dijkstraTime.getPath(stations[0], stations[1]).getVertexList(); + getMinPath(Constants.PATH_TIME, shortestPath, getMinValue(stations)); startProgram(kbd); } catch (Exception e) { startProgram(kbd); } } + + public static void getMinPath(String name, List path, int[] values) { + Line minPath = new Line(name); + LineRepository.addLine(minPath, path); + View.displayPath(minPath, values[0], values[1]); + LineRepository.deleteLineByName(name); + } + + public static int[] getMinValue(String[] stations) { + double time = Init.dijkstraTime.getPath(stations[0], stations[1]).getWeight(); + double distance = Init.dijkstraDistance.getPath(stations[0], stations[1]).getWeight(); + int[] values = new int[2]; + values[0] = (int) Math.round(time); + values[1] = (int) Math.round(distance); + return values; + } } From cabce1cf3fea24ec4ddbe6877ad188d4768f7ee2 Mon Sep 17 00:00:00 2001 From: xrabcde Date: Sat, 19 Dec 2020 17:34:47 +0900 Subject: [PATCH 28/30] =?UTF-8?q?feat(ErrorMessage):=20=EC=97=90=EB=9F=AC?= =?UTF-8?q?=20=EB=A9=94=EC=8B=9C=EC=A7=80=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/subway/domain/Constants.java | 1 + src/main/java/subway/view/ErrorMessage.java | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/src/main/java/subway/domain/Constants.java b/src/main/java/subway/domain/Constants.java index fce02936c..896c4d190 100644 --- a/src/main/java/subway/domain/Constants.java +++ b/src/main/java/subway/domain/Constants.java @@ -17,6 +17,7 @@ public class Constants { public static final int FUNCTION_INPUT_ERROR = 0; public static final int NO_SUCH_NAME_ERROR = 1; public static final int SAME_NAME_ERROR = 2; + public static final int UNKNOWN_ERROR = 3; public static final String FIND_PATH = "1"; public static final String FINISH_PROGRAM = "Q"; diff --git a/src/main/java/subway/view/ErrorMessage.java b/src/main/java/subway/view/ErrorMessage.java index 39e46858f..5a1134036 100644 --- a/src/main/java/subway/view/ErrorMessage.java +++ b/src/main/java/subway/view/ErrorMessage.java @@ -6,5 +6,11 @@ public class ErrorMessage { public static void displayErrorMessage(int errorCase) { if (errorCase == Constants.FUNCTION_INPUT_ERROR) System.out.println("[ERROR] 선택할 수 없는 기능입니다."); + if (errorCase == Constants.NO_SUCH_NAME_ERROR) + System.out.println("[ERROR] 등록되지 않은 역 이름입니다."); + if (errorCase == Constants.SAME_NAME_ERROR) + System.out.println("[ERROR] 출발역과 도착역은 같을 수 없습니다."); + if (errorCase == Constants.UNKNOWN_ERROR) + System.out.println("[ERROR] 알 수 없는 오류가 발생했습니다."); } } From fdccf53ef5e8aa319d814b3d5e009e6a040fbf31 Mon Sep 17 00:00:00 2001 From: xrabcde Date: Sat, 19 Dec 2020 17:41:13 +0900 Subject: [PATCH 29/30] =?UTF-8?q?fix(Init):=20=EC=9E=98=EB=AA=BB=20?= =?UTF-8?q?=EC=9E=85=EB=A0=A5=ED=95=9C=20=EA=B0=80=EC=A4=91=EC=B9=98?= =?UTF-8?q?=EA=B0=92=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/subway/domain/Init.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/subway/domain/Init.java b/src/main/java/subway/domain/Init.java index 48ec96a93..ea5fe2917 100644 --- a/src/main/java/subway/domain/Init.java +++ b/src/main/java/subway/domain/Init.java @@ -43,7 +43,7 @@ public static DijkstraShortestPath initializeDistanceGraph() { graph.setEdgeWeight(graph.addEdge("남부터미널역", "양재역"), 6); graph.setEdgeWeight(graph.addEdge("양재역", "매봉역"), 1); graph.setEdgeWeight(graph.addEdge("강남역", "양재역"), 2); - graph.setEdgeWeight(graph.addEdge("양재역", "양재시민의숲역"), 8); + graph.setEdgeWeight(graph.addEdge("양재역", "양재시민의숲역"), 10); } DijkstraShortestPath dijkstraDistance = new DijkstraShortestPath(graph); return dijkstraDistance; @@ -60,7 +60,7 @@ public static DijkstraShortestPath initializeTimeGraph() { graph.setEdgeWeight(graph.addEdge("교대역", "남부터미널역"), 2); graph.setEdgeWeight(graph.addEdge("남부터미널역", "양재역"), 5); graph.setEdgeWeight(graph.addEdge("양재역", "매봉역"), 1); - graph.setEdgeWeight(graph.addEdge("강남역", "양재역"), 10); + graph.setEdgeWeight(graph.addEdge("강남역", "양재역"), 8); graph.setEdgeWeight(graph.addEdge("양재역", "양재시민의숲역"), 3); } DijkstraShortestPath dijkstraTime = new DijkstraShortestPath(graph); From 40896b99133e49fd6aeb6f2fb1b22bf76404c5b1 Mon Sep 17 00:00:00 2001 From: xrabcde Date: Sat, 19 Dec 2020 17:42:57 +0900 Subject: [PATCH 30/30] =?UTF-8?q?refactor:=20=EB=B6=88=ED=95=84=EC=9A=94?= =?UTF-8?q?=ED=95=9C=20=EC=BD=94=EB=93=9C=20=EC=82=AD=EC=A0=9C=20=EB=B0=8F?= =?UTF-8?q?=20=EB=A6=AC=ED=8C=A9=ED=86=A0=EB=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/subway/PathManage.java | 14 +++++--------- src/main/java/subway/domain/Line.java | 10 ---------- src/main/java/subway/domain/LineRepository.java | 4 ---- src/main/java/subway/view/View.java | 4 ---- 4 files changed, 5 insertions(+), 27 deletions(-) diff --git a/src/main/java/subway/PathManage.java b/src/main/java/subway/PathManage.java index f954f6deb..dcb183143 100644 --- a/src/main/java/subway/PathManage.java +++ b/src/main/java/subway/PathManage.java @@ -1,11 +1,7 @@ package subway; -import subway.domain.Constants; -import subway.domain.Init; -import subway.domain.Line; -import subway.domain.LineRepository; -import subway.view.InputView; -import subway.view.View; +import subway.domain.*; +import subway.view.*; import java.util.List; import java.util.Scanner; @@ -28,7 +24,7 @@ public static void findMinDistance(Scanner kbd) { try { String[] stations = InputView.inputSrcDest(kbd); List shortestPath = Init.dijkstraDistance.getPath(stations[0], stations[1]).getVertexList(); - getMinPath(Constants.PATH_DISTANCE, shortestPath, getMinValue(stations)); + showMinPath(Constants.PATH_DISTANCE, shortestPath, getMinValue(stations)); startProgram(kbd); } catch (Exception e) { startProgram(kbd); @@ -39,14 +35,14 @@ public static void findMinTime(Scanner kbd) { try { String[] stations = InputView.inputSrcDest(kbd); List shortestPath = Init.dijkstraTime.getPath(stations[0], stations[1]).getVertexList(); - getMinPath(Constants.PATH_TIME, shortestPath, getMinValue(stations)); + showMinPath(Constants.PATH_TIME, shortestPath, getMinValue(stations)); startProgram(kbd); } catch (Exception e) { startProgram(kbd); } } - public static void getMinPath(String name, List path, int[] values) { + public static void showMinPath(String name, List path, int[] values) { Line minPath = new Line(name); LineRepository.addLine(minPath, path); View.displayPath(minPath, values[0], values[1]); diff --git a/src/main/java/subway/domain/Line.java b/src/main/java/subway/domain/Line.java index 4894b144e..00cd36447 100644 --- a/src/main/java/subway/domain/Line.java +++ b/src/main/java/subway/domain/Line.java @@ -6,8 +6,6 @@ public class Line { private String name; private List stationNames = new ArrayList<>(); -// private List intervalDistances = new ArrayList<>(); -// private List intervalTimes = new ArrayList<>(); public Line(String name) { this.name = name; @@ -21,14 +19,6 @@ public void addStation(int index, String name) { stationNames.add(index-1, name); } -// public void addDistances(int index, int distance) { -// intervalDistances.add(index, distance); -// } -// -// public void addTimes(int index, int time) { -// intervalTimes.add(index, time); -// } - public void displayLine() { for (String station : stationNames) System.out.println("[INFO] " + station); diff --git a/src/main/java/subway/domain/LineRepository.java b/src/main/java/subway/domain/LineRepository.java index 7c1cda0cc..680f30d24 100644 --- a/src/main/java/subway/domain/LineRepository.java +++ b/src/main/java/subway/domain/LineRepository.java @@ -15,10 +15,6 @@ public static List lines() { public static void addLine(Line line, List names) { for (int i = 1; i <= names.size(); i++) line.addStation(i, names.get(i-1)); -// for (int i = 0; i < distances.size(); i++) { -// line.addDistances(i, distances.get(i)); -// line.addTimes(i, times.get(i)); -// } lines.add(line); } diff --git a/src/main/java/subway/view/View.java b/src/main/java/subway/view/View.java index 5be64e117..e7cd5066c 100644 --- a/src/main/java/subway/view/View.java +++ b/src/main/java/subway/view/View.java @@ -2,10 +2,6 @@ import subway.domain.Line; -import java.util.Scanner; - -import static subway.Application.startProgram; - public class View { public static void showMainMenu() { System.out.println("\n## 메인 화면");