본문 바로가기
Algorithm & SQL/BAEKJOON

백준 JAVA 2979 트럭 주차

by YoonJong 2022. 9. 5.
728x90

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

 

2979번: 트럭 주차

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

www.acmicpc.net

 

 

int[] arr = new int[101];

입력으로 주어지는 시간은 1~100 사이이므로 배열을 먼저 선언해준다.

선언해주는 이유는 , 3개의 트럭의 시간을 각각 넣어 계산하려는 이유이다.

 

for (int i = 0; i < 3; i++) {
    int start = sc.nextInt();
    int end = sc.nextInt();

    for (int j = start; j < end; j++) {
        arr[j]++;
    }
}

 

트럭은 3개이므로, 3개의 입력을 받아서 첫번째 입력값과 두번째입력값 사이의 값을 배열에 1씩 더해준다.

for (int i = 0; i < arr.length; i++) {
    if ( arr[i] == 1) {
        sum += a;
    }
    if ( arr[i] == 2) {
        sum += b * 2;
    }
    if ( arr[i] == 3) {
        sum += c * 3;
    }
}

swith문을 사용해도 되지만, if문을 사용했다.

a 는 1대일때 b는 2대일때, c는 3대일때이므로 각각 곱해서 sum값(총값)에 더해주었다.

 

 

package BAEKJOON.Bronze.Ⅱ;
/**
 * 시간 제한   메모리 제한 제출 정답 맞힌 사람  정답 비율
 * 1 초 128 MB 4716   3253   2833   69.504%
 */

import java.util.Scanner;

public class NO2979_2 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int[] arr = new int[101];

        int a = sc.nextInt();
        int b = sc.nextInt();
        int c = sc.nextInt();
        int sum = 0;

        for (int i = 0; i < 3; i++) {
            int start = sc.nextInt();
            int end = sc.nextInt();

            for (int j = start; j < end; j++) {
                arr[j]++;
            }
        }
//        System.out.println(Arrays.toString(arr));

        for (int i = 0; i < arr.length; i++) {
            if ( arr[i] == 1) {
                sum += a;
            }
            if ( arr[i] == 2) {
                sum += b * 2;
            }
            if ( arr[i] == 3) {
                sum += c * 3;
            }
        }
        System.out.println(sum);
    }
}

 

 

 

 

728x90

댓글