解いた問題
作成したコード
- クエリの文字列が市場の文字列の先頭に一致するかは、StartsWith()メソッドを使用しました。
注意
Contains()メソッドでは、クエリの文字列が市場の文字列の先頭以外含まれる場合も検出されてしまうので、今回の用途では使用しません。
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
string[] p = Console.ReadLine().Split(' ');
int soldStrNum = int.Parse(p[0]);
int queryNum = int.Parse(p[1]);
string[] soldStr = new string[soldStrNum];
int[] soldCost = new int[soldStrNum];
string[] queries = new string[queryNum];
int[] score = new int[queryNum];
for(int i=0; i<queryNum; i++)
{
score[i] = 0;
}
for(int i=0; i<soldStrNum; i++)
{
string[] input = Console.ReadLine().Split(' ');
soldStr[i] = input[0];
soldCost[i] = int.Parse(input[1]);
}
for(int i=0; i<queryNum; i++)
{
queries[i] = Console.ReadLine();
}
int i_sc = 0;
foreach(var q in queries)
{
for(int i=0; i<soldStrNum; i++)
{
if(soldStr[i].StartsWith(q))
{
score[i_sc] += soldCost[i];
}
}
i_sc++;
}
foreach(var sc in score)
{
Console.WriteLine(sc);
}
}
}