코딩테스트/BOJ

[BOJ] 2979 트럭주차 - JAVA

5월._. 2023. 3. 15.
728x90

1. 문제

 

2979번: 트럭 주차

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

www.acmicpc.net

상근이는 트럭을 총 세 대 가지고 있다. 오늘은 트럭을 주차하는데 비용이 얼마나 필요한지 알아보려고 한다.

상근이가 이용하는 주차장은 주차하는 트럭의 수에 따라서 주차 요금을 할인해 준다.

트럭을 한 대 주차할 때는 1분에 한 대당 A원을 내야 한다. 두 대를 주차할 때는 1분에 한 대당 B원, 세 대를 주차할 때는 1분에 한 대당 C원을 내야 한다.

A, B, C가 주어지고, 상근이의 트럭이 주차장에 주차된 시간이 주어졌을 때, 주차 요금으로 얼마를 내야 하는지 구하는 프로그램을 작성하시오.


2. 풀이

A,B,C 경우의 총 요금을 미리 계산해두고 100번째 인덱스까지 있는 배열에 트럭을 하나씩 배정한다.

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

public class BOJ_2979_트럭주차 {
   public static void main(String[] args) throws IOException {
      BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
      StringTokenizer st = new StringTokenizer(in.readLine());
      int A = Integer.parseInt(st.nextToken());
      int B = Integer.parseInt(st.nextToken())*2;
      int C = Integer.parseInt(st.nextToken())*3;

      int[] fee = new int[101];
      for(int i=0;i<3;i++){
         st = new StringTokenizer(in.readLine());
         int start = Integer.parseInt(st.nextToken())+1;
         int end = Integer.parseInt(st.nextToken());
         for(;start<=end;start++) fee[start]++;
      }

      int answer = 0;
      for(int f:fee){
         if(f==1) answer += A;
         else if(f==2) answer += B;
         else if(f==3) answer += C;
      }

      System.out.println(answer);
   }
}

3. 결과

'코딩테스트 > BOJ' 카테고리의 다른 글

[BOJ] 2467 용액 - JAVA  (0) 2023.03.17
[BOJ] 9466 텀 프로젝트 - JAVA  (0) 2023.03.16
[BOJ] 10162 전자레인지 - JAVA  (0) 2023.03.14
[BOJ] 23843 콘센트 - JAVA  (0) 2023.03.13
[BOJ] 1259 팰린드롬수 - JAVA  (0) 2023.03.12

댓글