728x90
https://www.acmicpc.net/problem/2979
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
'Algorithm & SQL > BAEKJOON' 카테고리의 다른 글
백준 JAVA 1213 팰린드롬 만들기 (0) | 2022.09.08 |
---|---|
백준 JAVA 3085 사탕 게임 (0) | 2022.09.06 |
백준 JAVA 1940 주몽 (0) | 2022.09.02 |
백준 JAVA 1620 나는야 포켓몬 마스터 이다솜 (0) | 2022.09.01 |
백준 JAVA 2559 수열 (0) | 2022.09.01 |
댓글