변경이력

돌아가기
2 150개 문자 추가

2016/10/20 15:04

compert

Java - 트럭 클래스를 정의하고 다리 최초 진입 시의 진행 단계(stage)와 다리를 다 건넜을 때의 단계를 기록한다. - 트럭은 한 번 다리에 올라가면 다리 길이 만큼 진행 후에 다리를 건넌 상태가 된다. - 제일 마지막으로 지나간 트럭의 종료 단계를 출력한다. ```{.java} import java.util.Scanner; public class TruckTimer { public static int process(String input1, String input2) { String[] inputList1 = input1.split(" "); String[] inputList2 = input2.split(" "); int w = Integer.parseInt(inputList1[1]); int l = Integer.parseInt(inputList1[2]); Truck[] trucks = new Truck[inputList2.length]; for (int i = 0; i < trucks.length; i++) { int weight = Integer.parseInt(inputList2[i]); trucks[i] = new Truck(weight); } return checkTime(w, l, trucks); } private static int checkTime(int w, int l, Truck[] trucks) { int stage = 1; int currentWeight = 0; for (int i = 0; i < trucks.length; i++) { for (int j = 0; j <= i; j++) { if (trucks[j].endStage == stage) { currentWeight -= trucks[j].weight; } } if (currentWeight + trucks[i].weight <= l) { currentWeight += trucks[i].weight; trucks[i].startStage = stage; trucks[i].endStage = stage + w; stage++; } else { stage += w; trucks[i].startStage = stage; trucks[i].endStage = stage + w; } } return trucks[trucks.length-1].endStage; } public static void main(String[] args) { Scanner sc = new Scanner(System.in); String input1 = sc.nextLine(); String input2 = sc.nextLine(); System.out.println(TruckTimer.process(input1, input2)); } } class Truck { public final int weight; public int startStage; public int endStage; public Truck(int weight) { super(); this.weight = weight; } } ```
Java - 트럭 클래스를 정의하고 다리 최초 진입 시의 진행 단계(stage)와 다리를 다 건넜을 때의 단계를 기록한다. - 트럭은 한 번 다리에 올라가면 다리 길이 만큼 진행 후에 다리를 건넌 상태가 된다. - 제일 마지막으로 지나간 트럭의 종료 단계를 출력한다. ```{.java} import java.util.Scanner; public class TruckTimer { public static int process(String input1, String input2) { String[] inputList1 = input1.split(" "); String[] inputList2 = input2.split(" "); int w = Integer.parseInt(inputList1[1]); int l = Integer.parseInt(inputList1[2]); Truck[] trucks = new Truck[inputList2.length]; for (int i = 0; i < trucks.length; i++) { int weight = Integer.parseInt(inputList2[i]); trucks[i] = new Truck(weight); } return checkTime(w, l, trucks); } private static int checkTime(int w, int l, Truck[] trucks) { int stage = 1; int currentWeight = 0; for (int i = 0; i < trucks.length; i++) { for (int j = 0; j <= i; j++) { if (trucks[j].endStage == stage) { currentWeight -= trucks[j].weight; } } if (currentWeight + trucks[i].weight <= l) { currentWeight += trucks[i].weight; trucks[i].startStage = stage; trucks[i].endStage = stage + w; stage++; } else { stage += w; trucks[i].startStage = stage; trucks[i].endStage = stage + w; } } return trucks[trucks.length-1].endStage; } public static void main(String[] args) { Scanner sc = new Scanner(System.in); String input1 = sc.nextLine(); String input2 = sc.nextLine(); System.out.println(TruckTimer.process(input1, input2)); } } class Truck { public final int weight; public int startStage; public int endStage; public Truck(int weight) { super(); this.weight = weight; } } ```
1 Original

2016/10/12 08:07

compert

코딩도장

코딩도장은 프로그래밍 문제풀이를 통해서 코딩 실력을 수련(Practice)하는 곳입니다.