반응형
https://www.acmicpc.net/problem/5157
map을 이용해 푼 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
data 수 k, 전체 회사 수 c, 구제할 회사 수 b, 보너스 정보 수 n, 세금을 제한 보너스 결과에 대한 비율 r, 정답을 출력할 ans, 회사별 보너스 정보를 저장할 map변수 bonusInfo, 구제받을 회사 목록을 저장할 vector변수 bailedCompany를 선언 후 적절히 입력받습니다.* 매 data set마다 자료구조를 적절히 초기화해줍니다.
📔 풀이과정
회사번호와 그 회사가 받은 보너스 정보를 입력받고 세금을 제한 금액을 bonusInfo에 누적해줍니다.bailedCompany의 원소에 loop를 수행하며 ans에 누적해 더해줍니다.
📔 정답출력
형식에 맞게 ans를 출력해줍니다.
📕 Code
#include <bits/stdc++.h>
using namespace std;
int k, c, b, n, r, ans;
map <int,int> bonusInfo;
vector <int> bailedCompany;
int main(){
cin >> k;
for(int i = 1; i <= k; i++){
bonusInfo.clear();
bailedCompany.clear();
ans = 0;
cin >> c >> b >> n >> r;
for(int i = 0, x; i < b; i++){
cin >> x;
bailedCompany.push_back(x);
}
for(int i = 0, c, p; i < n; i++){
cin >> c >> p;
bonusInfo[c] += p * r/100;
}
for(auto b : bailedCompany){
ans += bonusInfo[b];
}
cout << "Data Set " << i << ":\n";
cout << ans << '\n' << '\n';
}
}
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.
'Algorithm > 자료구조' 카테고리의 다른 글
(C++) - LeetCode (easy) 21. Merge Two Sorted Lists (0) | 2022.10.25 |
---|---|
(C++) - LeetCode (easy) 20. Valid Parentheses (0) | 2022.10.18 |
(C++) - 백준(BOJ) 15720 : 카우버거 (0) | 2022.06.01 |
(C++) - 백준(BOJ) 4158 : CD (0) | 2022.05.25 |
(C++) - 백준(BOJ) 2358 : 평행선 (0) | 2022.05.15 |