C++ 입문 AtCoder Programming Guide for beginners (APG4b)

5001 단어 C++AtCoder
EX23 - 최빈값
h tps // 아 t 여기 r. jp / sts / a pg4b / sks / a PG4b_bz



연상 배열 연습 문제.
map 함수를 사용한다.

map 함수 사용법
map<"型(int)", "型(int)"> "配列名(A)" ; //関数宣言
A["番号(4)"]="入力値(57)"; //入力
A["番号(2)"]="入力値(31)"; //入力
int a=A[2]; //呼び出し aに31が代入される
int a=A[10]; //宣言してない配列呼び出し A[10]=0で初期化され、a=0が代入されるはず

버킷법을 함수로 할 수 있다.
이번 문제에서는 A[i]의 수치를 번호로 라벨하고, 그 때의 값을 인크리먼트하도록 한다.
#include <bits/stdc++.h>
#include <math.h>
using namespace std;

int main() {
  long long N;
  long long A[110000];
  int max=0;
  int ans;
  map<long, long> B ;
  cin>>N;
  for(int i=0;i<N;i++){
      cin>>A[i];
      B[A[i]] = B[A[i]]+1;  //A[i]の値をB配列に入力し、カウントアップする
      if(max<B[A[i]]){
          max=B[A[i]];  //最大値の個数を記録する。
          ans=A[i];  //最大値を記録する。
      }
  }
cout<<ans<<" "<<B[ans]<<endl;
}

좋은 웹페이지 즐겨찾기