自学内容网 自学内容网

全栈项目小组【算法赛】题目及解题

题目:全栈项目小组【算法赛】

题目:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

解题思路

1.遍历简历信息:我们需要读取所有简历,根据期望薪资和岗位类型进行分类和统计。

2.分类统计:使用哈希表来存储每个薪资下的前端(F)和后端(B)的数量。具体来说,可以用两个哈希表:一个存储期望薪资对应的前端人数,另一个存储期望薪资对应的后端人数。

3.配对:对于每一个薪资等级,能组成的全栈小组数量是该薪资下前端和后端人数的较小值。
例如,若期望薪资为 10000 的有 3 个前端和 2 个后端,那么就能组成 2 个全栈小组。

4.统计结果:最后将所有薪资下能组成的全栈小组数加起来就是结果。

解题代码

#include <stdio.h>
#include <stdlib.h>

#define maxs 1000000

int main()
{
  // 请在此输入您的代码
  int N;//简历数量
  int s;//薪水
  int count=0;//最终的小组数
  char p;//F|B

  int f[maxs+1]={0};//用于计数
  int b[maxs+1]={0};//数组初始化,数组中的每个数都为0

  scanf("%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;
}

原文地址:https://blog.csdn.net/2201_75648436/article/details/142442527

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!