본문 바로가기
Algorithm Study/BaekJoon (JAVA)

백준 2979_트럭 주차_JAVA

by 창브로 2024. 4. 15.
728x90

https://www.acmicpc.net/problem/2979

 

2979번: 트럭 주차

첫째 줄에 문제에서 설명한 주차 요금 A, B, C가 주어진다. (1 ≤ C ≤ B ≤ A ≤ 100) 다음 세 개 줄에는 두 정수가 주어진다. 이 정수는 상근이가 가지고 있는 트럭이 주차장에 도착한 시간과 주차장

www.acmicpc.net

import java.util.*;
import java.io.*;


public class Main {
    static int A, B, C;

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());

        A = Integer.parseInt(st.nextToken()); // 1대 주차시 1분에 한 대 가격
        B = Integer.parseInt(st.nextToken()); // 2대 주차시 1분에 한 대 가격
        C = Integer.parseInt(st.nextToken()); // 3대 주차시 1분에 한 대 가격

        int answer = 0;

        int[] arr = new int[101]; // 1초부터 100초까지 있기 때문에

        for (int i = 0; i < 3; i++) {
            st = new StringTokenizer(br.readLine());
            int start = Integer.parseInt(st.nextToken());
            int end = Integer.parseInt(st.nextToken());

            for (int j = start; j < end; j++) { // end는 나가는 시간이니 +1을 해주면 안됌
                arr[j] += 1;
            }
        }

        for (int i = 0; i < arr.length; i++) {
            if (arr[i] == 1) {
                answer += A;
            } else if (arr[i] == 2) {
                answer += B * 2;
            } else if (arr[i] == 3) {
                answer += C * 3;
            }
        }
        System.out.print(answer);
    }
}

 

회고

- 브론즈 문제였지만 구현 문제를 많이 풀어보지 않아 생각하는데 오랜 시간이 걸렸다.

- 구현 문제도 꾸준히 자주 풀어야 할 것 같다.