개발/Java

[Java] 객체지향으로 문제풀기

suniverse 2023. 1. 31. 23:55

public class test7 {

	public static void main(String[] args) {
		Road north = new Road(new int[] {70, 80, 60, 20, 30, 50, 10, 80, 77, 89});
		Road south = new Road(70, 60, 40, 50, 55, 65, 23, 44, 37, 88);
		north.roadInfo();
		south.roadInfo();
		System.out.println(north.sum(0, 2) + south.sum(2, 9));
		
		Bridge[] bridges = {new Bridge(2), new Bridge(4), new Bridge(6)};
		
		for(Bridge b : bridges) {
			b.total = north.sum(0, b.index) + south.sum(b.index, south.arr.length-1);
		}
		
		Bridge minBridge = Bridge.min(bridges);
		minBridge.bridgeInfo();
		
	}

}

class Bridge {
	int index;
	int total;
	
	public Bridge(int index) {
		this.index = index;
	}
	
	public void bridgeInfo() {
		System.out.println("다리번호 : " + index);
		System.out.println("총시간 : " + total);
	}
	
	public static Bridge min(Bridge[] arr) {
		Bridge min = arr[0];
		for(int i=1; i<arr.length; i++) {
			if(min.total > arr[i].total) {
				min = arr[i];
			}
		}
		return min;
	}
}



class Road{
	int[] arr;
	
	public Road(int...nums) {
		this.arr = nums;
	}
	
	public void roadInfo() {
		for(int i=0; i<arr.length; i++) {
			System.out.print(arr[i] + " ");
		}
		System.out.println();
	}
	
	public int sum(int startIndex, int endIndex) {
		int sum=0;
		for(int i=startIndex; i<=endIndex; i++) {
			sum += arr[i];
		}
		return sum;
	}
}