[Hash]Boj 1086:ディジタルカード2

1437 ワード

[Hash]boj 1086:ディジタルカード2


Link: https://www.acmicpc.net/problem/10816

質問する


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

入力

  • の第1行は、上位のデジタルカードの個数N(1≦N≦500000)を与える.2行目には、数値カードの整数が表示されます.デジタルカードに書かれている数字は-1000000以上、1000000未満です.
  • 行目は、M(1≦M≦500000)を与える.4行目には、上のルートがいくつかの数値カードであることを求めるためにスペースで区切られたM個の整数が与えられる.この数-1000000以上、1000000未満です.
  • しゅつりょく

  • の最初の行に入力されたM個の数字について、各数字の数字カードをスペースで区切って出力します.
  • I/O例



    コード|Python

    import sys
    si = sys.stdin.readline
    
    N = int(si())
    N_list = list(map(int,si().split()))
    M = int(si())
    M_list = list(map(int,si().split()))
    answer = []
    
    dict = {}
    for x in N_list:
        if x in dict:
            dict[x] += 1
        else:
            dict[x] = 1
    
    for x in M_list:
        if x in dict:
            print(dict[x],end=" ")
        else:
            print(0,end=" ")

    問題を解く


    詩を解いて問題を解くことで、簡単に求めることができます.すなわち、dictionaryを用いてキー値の値をそれぞれ何個記憶し、呼び出し時にキー値が存在する場合、valueが存在しない場合、0を印刷する.

    コードスクリーンショットと結果