-
[구현] - 트럭 주차알고리즘 스터디 02/문제 풀이 2024. 1. 3. 00:08
< 구현 > - < 브론즈 2 >
2979번: 트럭 주차
첫째 줄에 문제에서 설명한 주차 요금 A, B, C가 주어진다. (1 ≤ C ≤ B ≤ A ≤ 100) 다음 세 개 줄에는 두 정수가 주어진다. 이 정수는 상근이가 가지고 있는 트럭이 주차장에 도착한 시간과 주차장
www.acmicpc.net
[ 2979 ] 트럭 주차
상근이는 트럭을 총 세 대 가지고 있다. 오늘은 트럭을 주차하는데 비용이 얼마나 필요한지 알아보려고 한다.
상근이가 이용하는 주차장은 주차하는 트럭의 수에 따라서 주차 요금을 할인해 준다.
트럭을 한 대 주차할 때는 1분에 한 대당 A원을 내야 한다. 두 대를 주차할 때는 1분에 한 대당 B원, 세 대를 주차할 때는 1분에 한 대당 C원을 내야 한다.
A, B, C가 주어지고, 상근이의 트럭이 주차장에 주차된 시간이 주어졌을 때, 주차 요금으로 얼마를 내야 하는지 구하는 프로그램을 작성하시오.
:: 입력 ::
첫째 줄에 문제에서 설명한 주차 요금 A, B, C가 주어진다. (1 ≤ C ≤ B ≤ A ≤ 100)
다음 세 개 줄에는 두 정수가 주어진다. 이 정수는 상근이가 가지고 있는 트럭이 주차장에 도착한 시간과 주차장에서 떠난 시간이다. 도착한 시간은 항상 떠난 시간보다 앞선다. 입력으로 주어지는 시간은 1과 100사이 이다.
:: 출력 ::
첫째 줄에 상근이가 내야하는 주차 요금을 출력한다.
park라는 배열을 만들어서
입력이
1 6 과 같이 들어오면
park[1]~park[5] ++; 연산을
2, 3번 트럭에도 동일하게 수행한 뒤
park 배열을 돌며 차량수에 따라 다른 연산을 적용해서 최종 결과를 출력정답 코드
#include <bits/stdc++.h> using namespace std; #define fastio cin.tie(0)->sync_with_stdio(0) int park[101]; int main() { fastio; int a, b, c; cin >> a >> b >> c; int sum=0, max=0; for (int i = 0; i < 3; i++) { int x,y; cin >> x >> y; if (max < y) { max = y; } for (int j = x; j <= y-1; j++) { park[j]++; } } for (int j = 1; j < max; j++) { if (park[j] == 0) continue; if (park[j] == 1) { sum += a; } else if (park[j] == 2) { sum += 2 * b; } else if (park[j] == 3) { sum += 3 * c; } } cout << sum; }
'알고리즘 스터디 02 > 문제 풀이' 카테고리의 다른 글
[DFS] - 안전 영역 (1) 2024.01.03 [DFS] - 유기농 배추 (1) 2024.01.03 [BFS] - 미로 탐색 (0) 2024.01.03 [구현] - 팰린드롬인지 확인하기 (2) 2024.01.03 [누적합] - 구간 합 구하기4 (0) 2023.12.27