백준 트럭 주차

KIMYEONGJUN·2025년 3월 2일
post-thumbnail

문제

내가 생각했을때 문제에서 원하는부분

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

첫째 줄에 상근이가 내야하는 주차 요금을 출력한다.

내가 이 문제를 보고 생각해본 부분

입력 처리: BufferedReader를 사용하여 입력을 한 번에 받는다.
주차 요금과 각 트럭의 도착 및 떠난 시간을 배열에 저장한다.
주차 요금 계산: 1부터 100까지의 시간을 순회하며, 각 시간에 주차된 트럭의 수를 세고 그에 따라 요금을 계산한다.
결과 출력: StringBuilder를 사용하여 결과를 저장한 후 한 번에 출력한다.

코드로 구현

package baekjoon.baekjoon_27;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

// 백준 2979번 문제
public class Main949 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();

        // 주차 요금 A, B, C 입력
        String[] rates = br.readLine().split(" ");
        int A = Integer.parseInt(rates[0]);
        int B = Integer.parseInt(rates[1]);
        int C = Integer.parseInt(rates[2]);

        // 각 트럭의 주차 시간 입력
        int[][] times = new int[3][2];
        for(int i = 0; i < 3; i++) {
            String[] time = br.readLine().split(" ");
            times[i][0] = Integer.parseInt(time[0]); // 도착 시간
            times[i][1] = Integer.parseInt(time[1]); // 떠난 시간
        }

        // 주차 요금 계산
        int totalCost = 0;
        for(int i = 1; i <= 100; i++) {
            int count = 0; // 현재 시간에 주차된 트럭 수
            for(int j = 0; j < 3; j++) {
                if(times[j][0] <= i && i < times[j][1]) {
                    count++;
                }
            }

            // 현재 주차된 트럭 수에 따라 요금 결정
            if(count == 1) {
                totalCost += A;
            } else if(count == 2) {
                totalCost += B * 2; // 두 대일 경우
            } else if(count == 3) {
                totalCost += C * 3; // 세 대일 경우
            }
        }

        // 결과 출력
        sb.append(totalCost);
        System.out.println(sb.toString());
        br.close();
    }
}

마무리

코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.

profile
Junior backend developer

0개의 댓글