【スキルチェック過去問題セット】> 単語のカウント (paizaランク C 相当) [難易度: 1510 ±6]
※リンク先へ移動するためには[paiza]へのログインが必要です。
スペースで区切られた英単語列が与えられます。
英単語列に含まれる英単語の出現回数を出現した順番に出力してください。
入力値(例)
red green blue blue green blue
出力値(例)
red 1
green 2
blue 3
解答例
1 2 3 4 5 6 7 8 9 |
<?php $s = explode(" ", trim(fgets(STDIN))); $counts = array_count_values($s); foreach ($counts as $key => $value) { printf("%s %d\n", $key, $value); } ?> |
解説
array_count_values()は、配列の重複した値の数をカウントする関数です。引数に配列を指定すると重複している要素の出現回数をカウントしてくれます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?php $input = array("apple","orange","banana","melon","apple","melon","apple","banana"); $output = array_count_values($input); print_r($output); //出力 // Array // ( // [apple] => 3 // [orange] => 1 // [banana] => 2 // [melon] => 2 // ) ?> |