こんばんわ。
まだ、9時だっていうのに、もう眠たい笑
でも、今日もTopCoderの問題を解きますよ~今日も簡単な問題を。
〇SRM 145 DIV2 250 問題内容
今回の問題は、ざっくりこんな感じの内容ですね。
・コンピュータは、使うことができる色の数に限りがある時、ディザリングというテクニックを使う。
・ディザリングとは、基本色のピクセルの組み合わせによって中間階調や中間色を表現すること、たとえば、チェッカーボードのようなもの白と黒のピクセルパターンが灰色のように見えるといったような感じである。
・そこで、あなたはこのディザリング処理に関係する文字と、コンピュータのスクリーンが与えられるので、ディザリング処理に関係するピクセルの数を数えてください。
・1つのピクセルは1つの文字であらわされており、それは大文字のAからZまでの文字のどれかで表現されている。
・クラスは、ImageDithering、メソッドはcount、パラメータは、(String、String[])、返り値はint。
・わからなかった単語
dither :おろおろする、うろたえる、ディザー処理する。
uppercase letter :大文字
ふむ。問題内容は長く、最初は「えっ、ガチの画像解析?」って思いましたが、なんてことはない、与えられた文字列に対して、指定された文字をカウントするだけのものですね笑。
〇コード
コードはこんな感じ。引数として引き渡されるのがsetということに気付くのが遅れた...でも、そんなに難しくなかった。
class ImageDithering: def count(self,dithered, screen): number = 0 for s in range(len(dithered)): for t in screen: for x in range(len(t)): if dithered[s] == t[x]: number = number + 1 return number