题目:全栈项目小组【算法赛】
题目:
解题思路
1.遍历简历信息:我们需要读取所有简历,根据期望薪资和岗位类型进行分类和统计。
2.分类统计:使用哈希表来存储每个薪资下的前端(F)和后端(B)的数量。具体来说,可以用两个哈希表:一个存储期望薪资对应的前端人数,另一个存储期望薪资对应的后端人数。
3.配对:对于每一个薪资等级,能组成的全栈小组数量是该薪资下前端和后端人数的较小值。
例如,若期望薪资为 10000 的有 3 个前端和 2 个后端,那么就能组成 2 个全栈小组。
4.统计结果:最后将所有薪资下能组成的全栈小组数加起来就是结果。
解题代码
#include <stdio.h>
#include <stdlib.h>#define maxs 1000000int main()
{// 请在此输入您的代码int N;//简历数量int s;//薪水int count=0;//最终的小组数char p;//F|Bint f[maxs+1]={0};//用于计数int b[maxs+1]={0};//数组初始化,数组中的每个数都为0scanf("%d",&N);for (int i=0;i<N;i++){scanf("%d %c",&s,&p);if(p=='F'){f[s]++;//数组中对应薪水索引累加,记录同一个薪水下的F的个数}if(p=='B'){b[s]++;}}for (s=0;s<maxs+1;s++){count += (f[s]<b[s])?f[s]:b[s];//遍历每个薪资,返回f和b中数小的个数,加在一起就是最后的全栈小组数}printf("%d",count);return 0;
}