わくワーク

2022年3月に早期退職し起業しました。仕事、趣味について発信する雑記ブログです。当ブログはGoogleアドセンス及びアフィリエイト広告を利用しています。

プログラミング練習問題始めました〜Aランクレベルアップメニュー「盤面の情報取得」

お元気さまです。わくワークの義(ヨシ)です。

 

何度かAランク問題にチャレンジしていますが、突破できず・・・

原因もわからないので、Aランクレベルアップメニューを始めました!

言語は、C言語です。

 

練習問題は、問題文や解答コードを公開して良いとのことです。

問題文は次のリンクで確認できます。

paiza.jp

 

提出したコードは次のとおりです。

#include <stdio.h>
int main(void){
    int h,w,n,i,x,y;
    char buf[21];
    char box[10000][21];
    fgets(buf, sizeof(buf), stdin);
    sscanf(buf, "%d %d %d\n", &h,&w,&n);
    for (i=0;i<h;i++) {
        fgets(buf, sizeof(buf), stdin);
        sscanf(buf, "%s",&box[i]);
    }
    for(i=0;i<n;i++){
        fgets(buf, sizeof(buf), stdin);
        sscanf(buf, "%d %d\n", &x,&y );      
        printf("%c\n",box[x][y]);
    }
    return 0;
}

 

与えられる盤面の行数が1以上となっていたので、上限なしと読み取れますが、列数の上限が20だったので、行も100ぐらいで十分かと勝手に予測しましたが、上限のチェック対策で多めに10000行としてみました。

実際にどんなテストデータで試されたかはわかりませんが、通過しました!

チケットを使えば、入力データを見ることができるようですが、ケチって確認していません。

 

今回の練習問題を始めるのにチケット3枚が必要でしたが、無料でアカウントを作成し、ログインしたり、何度か問題を解いたりして、いつのまにかチケットを6枚取得していたので、それを使いました。

アカウントは、次のリンクで無料で作成できます。

 

それでは、今日もワクワクな一日を!

チャオチャオ!