デジタルカード2(標準)


リンクテキスト

問題を理解する


デジタルカードは整数と書かれたカードです.尚根にはN枚のデジタルカードがあります.整数M個を指定する場合は、この数が書かれた数値カードがルートに何個あるかを求めるプログラムを作成します.

私の理解


これは数字を与えて、最後の行で与えられた数字がどれだけあるかを計算する問題です.

Python

import sys
from collections import Counter as ct


num = input()
read =  ct(map(int, sys.stdin.readline().split()))
guess = input()
read2 = map(int, sys.stdin.readline().split())

for ele in read2:
    print(read[ele],end = " ")
Python Collectionsパッケージを使用するのは難しくありません.カウンタは自動的にdict形式に変換されるので、カウンタに設定して対応する要素数を返すだけで実現できます.print(ele,end=")Python 3では、自分で印刷するときの改行すなわちend="n"が設定されています.そうなるとスペースの状態で印刷できます.
私が使っているコンパイラはPython 2です.xなので印刷できません.その時は慌てないでください.
from __future__ import print_function
これを追加すればいいです

C++

#include <iostream>
#include <map>
using namespace std;

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    
    int num;
    cin>> num;
    map<int,int> m;
   for(int i=0; i<num; i++){
       int intput;
       cin >> intput;
       m[intput]++;
       
       
   }
   
   cin >>num;
   for(int i =0;i<num;i++){
       int intput;
       cin >> intput;
       cout << m[intput]<<" ";
       
   }
   return 0;
}
cppではmapというオブジェクトを使用できますが、簡単に言えばpython dictと非常に似ています.そのようにm[intput]に近づくと、ないと0になり、あると+1の形になって探し出す.