반응형
1. 가장 처음 시작하는 시간과 가장 마지막에 끝나는 시간을 저장한다.
2. 그 시간동안 몇명이 들어와있는지 배열에 카운트 한다.
3. 개장 시작부터 마감시간 까지 파악하여 1일 경우 x1을 2일경우 x2를 3일경우 x3을 하여 더한다.
아래 사진은 카운트 예시이다.
arr[1] 은 트럭 한대 이기 때문에 +1이 arr[2]는 두대가 들어왔기 때문에 +2 arr[3]은 트럭 3대가 들어왔기 때문에 +3 의 값을 갖고 있다.
Switch 문을 통해 1,2,3을 구별하여 계산하면 된다. 아 끝~
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | import java.util.Scanner; class Main { public static void main(String[] args) throws Exception { Scanner sc = new Scanner(System.in); int A = sc.nextInt(); int B = sc.nextInt(); int C = sc.nextInt(); int[] arr = new int[100]; int start, end, max = 0; int min = 0; int sum = 0; for (int i = 0; i < 3; i++) { start = sc.nextInt(); end = sc.nextInt(); min = Math.min(min, start); //가장 빨리 시작하는 시간 max = Math.max(max, end); //가장 늦게 끝나는 시간 //트럭 한대의 start ~ end 시간동안 배열을 +1 해준다. for (int j = start; j < end; j++) { arr[j]++; } } // 가장 처음 들어온 시간 부터 가장 마지막 시간 까지 계산을 한다. for (int i = min; i < max; i++) { switch (arr[i]) { case 1: sum = sum + A*arr[i]; break; case 2: sum = sum + B*arr[i]; break; case 3: sum = sum + C*arr[i]; break; } } System.out.println(sum); } } | cs |
반응형
'나는요 공부가 좋....은걸... > 알고리즈음' 카테고리의 다른 글
[BOJ] 백준 1267 - 핸드폰 요금 (자바) (0) | 2018.02.05 |
---|---|
[BOJ] 백준 1697 - 숨바꼭질 (자바) (0) | 2018.02.05 |
[BOJ] 백준 1012 - 유기농 배추 (자바) (0) | 2018.02.03 |
[BOJ] 백준 1475 - 방 번호 (자바) (0) | 2018.01.30 |
[BOJ] 백준 2178 - 미로찾기 (자바) (0) | 2018.01.23 |