1 분 소요

사용 언어: Java

문제

트럭 주차

풀이

나의 풀이

자바

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws Exception {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter out = new BufferedWriter(new OutputStreamWriter(System.out));

        StringTokenizer stk = new StringTokenizer(in.readLine());
        int A = Integer.parseInt(stk.nextToken());
        int B = Integer.parseInt(stk.nextToken());
        int C = Integer.parseInt(stk.nextToken());

        int[][] timeInfo = new int[3][2]; // 입차, 출차 정보
        for (int i=0; i<3; i++) {
            stk = new StringTokenizer(in.readLine());
            timeInfo[i][0] = Integer.parseInt(stk.nextToken());
            timeInfo[i][1] = Integer.parseInt(stk.nextToken());
        }

        // 가장 늦은 출차시간 구하기
        int max = timeInfo[0][0];
        for (int i=0; i<timeInfo.length; i++) {
            if (max < timeInfo[i][1]) max = timeInfo[i][1];
        }
        int[] times = new int[max+1]; // 0으로 초기화 (몇시에 몇 대가 입차해 있는지 정보)
     
        // 각 시간대별로 들어와있는 차량 체크
        for (int i=0; i<3; i++) {
            for (int j=timeInfo[i][0]; j<timeInfo[i][1]; j++) { // 🌟 j<=timeInfo[i][1] 아님 !!
                times[j] += 1;
            }
        }

        // 요금 계산
        int ans = 0;
        for (int i=1; i<=max; i++) {
            if (times[i] == 1) {
                ans += 1 * A; // 1대 * A
            } else if (times[i] == 2) {
                ans += 2 * B; // 2대 * B
            } else if (times[i] == 3) {
                ans += 3 * C; // 3대 * C
            }
        }
        out.write(String.valueOf(ans));
        out.close();
        in.close();
    }
}
  • 테스트 케이스: 성공
  • 제출 결과: 성공


💛 개인 공부 기록용 블로그입니다. 👻

맨 위로 이동하기