お元気さまです。わくワークの義(ヨシ)です。
プログラミングスキルアップのためにpaizaラーニングでレベルアップ問題集を解いています。
練習問題は、次のリンクで確認できます。
もっとコンパクトなコードにできるような気もしますが、指示通りに手順を進めて、作成しました。
#include <stdio.h>
#include <string.h>
int main(void){
char str[1000];
char buf[21][22];
int h,w,sy,sx,i;
char yn[5];
char m;
fgets(str, sizeof(str), stdin);
sscanf(str,"%d %d %d %d %c",&h,&w,&sy,&sx,&m);
for(i=0;i<h;i++){
fgets(str, sizeof(str), stdin);
sscanf(str,"%s",buf[i]);
}
switch(m){
case 'N':
if(sy==0){
strcpy(yn,"No");
}
else if(buf[sy-1][sx]=='#'){
strcpy(yn,"No");
}
else strcpy(yn,"Yes");
break;
case 'S':
if(sy==h-1){
strcpy(yn,"No");
}
else if(buf[sy+1][sx]=='#'){
strcpy(yn,"No");
}
else strcpy(yn,"Yes");
break;
case 'E':
if(sx==w-1){
strcpy(yn,"No");
}
else if(buf[sy][sx+1]=='#'){
strcpy(yn,"No");
}
else strcpy(yn,"Yes");
break;
case 'W':
if(sx==0){
strcpy(yn,"No");
}
else if(buf[sy][sx-1]=='#'){
strcpy(yn,"No");
}
else strcpy(yn,"Yes");
break;
}
printf("%s", yn);
return 0;
}
Aランクへのレベルアップ目指して、学習を進めたいと思います。
それでは、今日もワクワクな一日を!
チャオチャオ!