CodeIQ:Get Wild回答

私自身が表題の問題を解いた時のプログラムについて解説します。
問題の詳細は「Get Wild回答」(CodeIQ)を参照してください。

問題の概要

問題を引用します。
問題
仕様
標準入力
・標準入力は w x y z のどれかが10文字結合された文字列がN行入力されます

【例】
xwwzzwwxzy
zyyzxwyxzx
wxxwxzwxzz
zzzxwwyzww
xxzzxzwyzy
wyzxzxzzzx
xxxwxwwzww
wxyzxzyxzz
wwwzzxxyxw
zzwwxwxyxy
ywwwzxzzxz

標準出力
・現在の行に xyz に一致する箇所がなければ半角ピリオド . を標準出力し、次の行の処理を継続します
・現在の行に xyz に一致する箇所があれば get wild を標準出力し、出力を終了します
.......get wild

その他の仕様
・標準入力の末尾には改行があります
・標準出力の末尾に改行をつけてください
・標準入力の仕様で説明した内容以外の入力は行われません
・標準入力内の少なくとも1行には必ず xyz に一致する箇所を含む行が存在します

Samples
Sample1
Input
ywzxxwxzyx
wxwyxzzxxx
xwwxzxyzzz
wwyyzwwywx
wzxyxxzwzy
wyyxyzzwwy
zwyzyzwzyy
zxwzzxwzxy
wyyxzwwyzw
yywyyxwyxx
wzzxzywwyy
wyzxwyywyw

Output
3行目に xyz を含んでいるので半角ピリオド2個と get wild が出力されます
..get wild

Sample2
Input
wwwzzxzwzx
zwxxzyyxxx
zyzxwzwzxy
yyzzzwyyyz
zwxzwxxyzz
xzyyxxyywx

Output
5行目に xyz を含んでいるので半角ピリオド4個と get wild が出力されます
....get wild

Sample3
Input
wyywywywyx
yywxyxyzxx
wwwywwxwxx
zyxywwzzyy
xwwyyzxzwz
yywyxywyyx
xzwwwyxwwx
zwwyxzxzwz
wwxyzwzzww
yywxyyzzzw
ywzzxywwwx

Output
2行目に xyz を含んでいるので半角ピリオド1個と get wild が出力されます
.get wild

私のプログラム

C言語で解答しています。

#include <stdio.h>
#include <string.h>

int main(void){
	char str[16] = {};
	while( fgets(str, sizeof(str), stdin) != NULL ){
		if(strstr(str, "xyz")){
			printf("get wild\n");
			break;
		}
		else{
			printf(".");
		}
	}
	return 0;
}

解説

非常に簡単な問題です。
動的配列なども必要ないのでC言語にしてみました。

main()

1行ごとに入力を取得し、文字列に"xyz"が含まれるかをチェックして含まれていたら"get wild"と改行を出力して終了、そうでなければ"."を出力して次の行を処理するだけです。

雑感

特にありません。