[BOJ] 2979 - 트럭 주차 (🥉 브론즈 2티어)
사용 언어: Java
문제
풀이
나의 풀이
자바
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer stk = new StringTokenizer(in.readLine());
int A = Integer.parseInt(stk.nextToken());
int B = Integer.parseInt(stk.nextToken());
int C = Integer.parseInt(stk.nextToken());
int[][] timeInfo = new int[3][2]; // 입차, 출차 정보
for (int i=0; i<3; i++) {
stk = new StringTokenizer(in.readLine());
timeInfo[i][0] = Integer.parseInt(stk.nextToken());
timeInfo[i][1] = Integer.parseInt(stk.nextToken());
}
// 가장 늦은 출차시간 구하기
int max = timeInfo[0][0];
for (int i=0; i<timeInfo.length; i++) {
if (max < timeInfo[i][1]) max = timeInfo[i][1];
}
int[] times = new int[max+1]; // 0으로 초기화 (몇시에 몇 대가 입차해 있는지 정보)
// 각 시간대별로 들어와있는 차량 체크
for (int i=0; i<3; i++) {
for (int j=timeInfo[i][0]; j<timeInfo[i][1]; j++) { // 🌟 j<=timeInfo[i][1] 아님 !!
times[j] += 1;
}
}
// 요금 계산
int ans = 0;
for (int i=1; i<=max; i++) {
if (times[i] == 1) {
ans += 1 * A; // 1대 * A
} else if (times[i] == 2) {
ans += 2 * B; // 2대 * B
} else if (times[i] == 3) {
ans += 3 * C; // 3대 * C
}
}
out.write(String.valueOf(ans));
out.close();
in.close();
}
}
- 테스트 케이스: 성공
- 제출 결과: 성공
💛 개인 공부 기록용 블로그입니다. 👻