-
[Baekjoon(백준)][2979번] 트럭 주차(C++)2024년 01월 23일
- 유니얼
-
작성자
-
2024.01.23.:41
728x90안녕하세요! 오늘은 코딩테스트 문제 중 하나인 "트럭 주차" 문제를 해결하는 방법에 대해 설명하려고 합니다. "트럭 주차" 문제는 상근이가 가진 세 대의 트럭이 주차장에 주차되어 있는 시간을 바탕으로 총 주차 요금을 계산하는 문제입니다. 문제를 해결하는 과정과 코드를 자세히 알아보겠습니다.
문제링크:
https://www.acmicpc.net/problem/2979
문제 개요
"트럭 주차" 문제는 상근이가 가진 세 대의 트럭이 주차장에 주차되어 있는 시간을 바탕으로 총 주차 요금을 계산하는 문제입니다. 주차 요금은 주차된 트럭 수에 따라 달라지며, 주차 요금 A, B, C와 트럭별 주차 시작 및 종료 시간이 주어집니다.
해결 방법
이 문제는 각 시간대별 주차된 트럭의 수를 계산하고, 이를 바탕으로 총 주차 요금을 계산합니다. 주차 요금은 주차된 트럭 수에 따라 다르므로, 각 시간대별로 주차된 트럭의 수를 카운트하고 해당 요금을 계산합니다.
코드 구현
#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int A, B, C = 0; // 주차 요금 vector<vector<int>> times(3,vector<int>(2,0)); // 각 트럭의 주차 시간 vector<int> counting(100, 0); // 시간대별 주차된 트럭 수 int answer = 0; // 총 주차 요금 // 주차 요금 입력 cin >> A >> B >> C; // 트럭별 주차 시간 입력 for (int i = 0; i < 3; i++) { for (int j = 0; j < 2; j++) { cin >> times[i][j]; } } // 각 트럭별 주차 시간대별로 카운팅 for (int i = 0; i < times.size(); i++) { for (int j = times[i][0]; j < times[i][1]; j++) { counting[j] += 1; } } // 카운팅된 트럭 수에 따라 요금 계산 for (int i = 0; i < counting.size(); i++) { switch (counting[i]) { case 1: answer += A; break; case 2: answer += B * 2; break; case 3: answer += C * 3; break; default: break; } } // 총 주차 요금 출력 cout << answer; return 0; }
코드 설명
이 코드는 각 트럭의 주차 시작 및 종료 시간을 입력 받고, 각 시간대별로 주차된 트럭의 수를 계산합니다. 이를 바탕으로 해당 시간대에 적용되는 요금을 계산하고, 모든 시간대의 요금을 합하여 총 주차 요금을 계산합니다. 이 방법은 시간대별 요금 계산이 필요한 다양한 상황에 적용될 수 있습니다.
결론
"트럭 주차" 문제는 시간대별로 주차 요금을 계산하는 방법으로 해결할 수 있으며, 범위 기반의 요금 계산 문제에 대한 이해를 요구합니다. 이러한 접근 방법은 주차 요금 계산, 이벤트 스케줄링 등 다양한 상황에서 유용하게 사용될 수 있습니다.
반응형다음글이전글이전 글이 없습니다.댓글