diff --git a/dseki/paiza/src/C112.java b/dseki/paiza/src/C112.java new file mode 100644 index 0000000000000000000000000000000000000000..a7e0d825f3868463c520f55471f72c0f08446053 --- /dev/null +++ b/dseki/paiza/src/C112.java @@ -0,0 +1,51 @@ +import java.util.ArrayList; +import java.util.Collections; +import java.util.Scanner; + +/** + * 時差ぼけ. + */ +public class C112 { + private final int itineraryDays; // 旅程の日数 + private final int TIME_OF_DAY = 24; // 1日の時間 + + private C112(final int itineraryDays) { + this.itineraryDays = itineraryDays; + } + + /** + * メインメソッド. + */ + public static void main(final String[] args) { + final Scanner sc = new Scanner(System.in); + new C112(sc.nextInt()).findMinAndMax(sc); + sc.close(); + } + + // 最小値と最大値を返すメソッド + private void findMinAndMax(final Scanner sc) { + final ArrayList totalLengthOfStayList = getTimeSpentInDayList(sc); + System.out.println(Collections.min(totalLengthOfStayList)); + System.out.println(Collections.max(totalLengthOfStayList)); + } + + // 1日でどのくらいの時間を過ごしたかのリストを返すメソッド + private ArrayList getTimeSpentInDayList(final Scanner sc) { + final ArrayList timeSpentInDayList = new ArrayList(); + for (int i = 0; i < itineraryDays; i++) { + final int departureTime = sc.nextInt(); // 出発時刻 + final int flightTime = sc.nextInt(); // 飛行機の乗車時間 + final int arrivalTime = sc.nextInt(); // 到着時刻 + final int timeSpentAfterArrival = calculateTimeSpentAfterArrival(arrivalTime); + final int timeSpentInDay = departureTime + flightTime + timeSpentAfterArrival; + timeSpentInDayList.add(timeSpentInDay); + } + return timeSpentInDayList; + } + + // 到着後、24時まであと何時間あるかを計算するメソッド + private int calculateTimeSpentAfterArrival(final int arrivalTime) { + final int timeSpentAfterArraival = this.TIME_OF_DAY - arrivalTime; + return timeSpentAfterArraival; + } +}