1. paizaラーニングトップ
  2. レベルアップ問題集
  3. 将棋メニュー(言語選択)
  4. 問題一覧 C++編
  5. (問題 15)盤面→文字列 C++編

将棋メニューのサムネイル
(問題 15)盤面→文字列 C++編(paizaランク C 相当)

問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!

問題

下記の問題をプログラミングしてみよう!

はじめに



ここでは、盤面を管理するために、盤面を文字列として管理する方法をやっていきます。

盤面を文字列に直す際いろいろなルールがあると思いますが、今回は以下のような文字列を考えます。

  • 9一、9二、9三、...、9九、8一、...、1一、...、1九の順番で文字列を連結する、つまり、左上から右下にかけて連結する


  • そのあと | を足し、白の持ちコマ、黒の持ちコマの順で歩兵、桂馬、香車、銀将、金将、飛車、角行の順番で連結する


  • 実際にやってみましょう。

    問題



    コマが置かれた盤面 L が与えられます。上記の方法で文字列に直してください。

    入力される値


    L_{1九} L_{2九} ... L_{9九}
    L_{1八} L_{2八} ... L_{9八}
    ...
    L_{1一} L_{2一} ... L_{9一}
    n
    motigoma_白
    m
    motigoma_黒

    i (1 ≦ i ≦ 9) 行目には n = 10 - i の漢数字としたとき、9 つの文字列 L_{1n},L_{2n},L_{3n},L_{4n},L_{5n},L_{6n},L_{7n},L_{8n},L_{9n} が与えられます。

    10 行目には 1 つの整数 n が与えられます。

    11 行目には n 個の文字列 motigoma_白_1, motigoma_白_2, ..., motigoma_白_n が与えられます。

    12 行目には 1 つの整数 m が与えられます。

    13 行目には m 個の文字列 motigoma_黒_1, motigoma_黒_2, ..., motigoma_黒_m が与えられます。

    入力は 13 行となり、末尾に改行が 1 つ入ります。


    入力値最終行の末尾に改行が1つ入ります。
    文字列は標準入力から渡されます。 標準入力からの値取得方法はこちらをご確認ください
    期待する出力

    答えを 1 行で出力してください。

    条件

    すべてのテストケースにおいて、以下の条件をみたします。

  • L の要素は 1 文字目が 黒,白 のいずれかで、2,3 文字目が 歩兵,王将,角行,飛車,金将,銀将,香車,桂馬,龍王,龍馬,と金,成銀,成香,成桂 のいずれかである 3 文字の文字列かーーー


  • motigoma_白 の要素は 1 文字目が で、2,3 文字目が 歩兵,角行,飛車,金将,銀将,香車,桂馬 のいずれかである 3 文字の文字列


  • motigoma_黒 の要素は 1 文字目が で、2,3 文字目が 歩兵,角行,飛車,金将,銀将,香車,桂馬 のいずれかである 3 文字の文字列


  • 0 ≦ n, m ≦ 38
  • 入力例1

    ーーー ーーー ーーー ーーー ーーー ーーー ーーー 黒王将 ーーー
    ーーー ーーー ーーー ーーー ーーー ーーー 黒桂馬 ーーー ーーー
    ーーー ーーー ーーー ーーー ーーー ーーー 黒銀将 ーーー ーーー
    ーーー ーーー 白角行 ーーー 黒金将 ーーー 白桂馬 ーーー ーーー
    ーーー 白龍馬 ーーー 黒龍馬 ーーー 白香車 ーーー 白歩兵 ーーー
    ーーー ーーー 白桂馬 ーーー ーーー ーーー ーーー ーーー ーーー
    ーーー ーーー 白金将 ーーー 白飛車 ーーー ーーー ーーー ーーー
    ーーー 黒と金 黒成桂 白と金 ーーー ーーー ーーー ーーー ーーー
    ーーー ーーー ーーー ーーー 白王将 ーーー ーーー ーーー ーーー
    1
    白香車
    2
    黒歩兵 黒歩兵

    出力例1

    ーーーーーーーーーーーーーーーーーーーーー黒王将ーーーーーーーーーーーーーーーーーーーーー黒桂馬ーーーーーーーーーーーーーーーーーーーーーーーー黒銀将ーーーーーーーーーーーー白角行ーーー黒金将ーーー白桂馬ーーーーーーーーー白龍馬ーーー黒龍馬ーーー白香車ーーー白歩兵ーーーーーーーーー白桂馬ーーーーーーーーーーーーーーーーーーーーーーーー白金将ーーー白飛車ーーーーーーーーーーーーーーー黒と金黒成桂白と金ーーーーーーーーーーーーーーーーーーーーーーーーーーー白王将ーーーーーーーーーーーー|白香車黒歩兵黒歩兵

    入力例2

    黒角行 ーーー ーーー ーーー ーーー 黒香車 黒飛車 黒王将 ーーー
    ーーー ーーー ーーー ーーー ーーー ーーー 白と金 ーーー ーーー
    ーーー ーーー ーーー ーーー ーーー ーーー 黒銀将 ーーー 黒と金
    ーーー ーーー ーーー 黒歩兵 ーーー ーーー 白桂馬 ーーー 黒金将
    ーーー 白龍馬 ーーー 黒龍馬 ーーー 白歩兵 ーーー 白歩兵 ーーー
    ーーー ーーー 白桂馬 ーーー ーーー ーーー ーーー ーーー ーーー
    ーーー ーーー 白銀将 ーーー ーーー ーーー ーーー ーーー ーーー
    ーーー 黒と金 ーーー 白と金 ーーー ーーー ーーー ーーー ーーー
    ーーー ーーー ーーー ーーー 白王将 ーーー ーーー ーーー ーーー
    0

    2
    黒銀将 黒金将

    出力例2

    黒角行ーーーーーーーーーーーー黒香車黒飛車黒王将ーーーーーーーーーーーーーーーーーーーーー白と金ーーーーーーーーーーーーーーーーーーーーーーーー黒銀将ーーー黒と金ーーーーーーーーー黒歩兵ーーーーーー白桂馬ーーー黒金将ーーー白龍馬ーーー黒龍馬ーーー白歩兵ーーー白歩兵ーーーーーーーーー白桂馬ーーーーーーーーーーーーーーーーーーーーーーーー白銀将ーーーーーーーーーーーーーーーーーーーーー黒と金ーーー白と金ーーーーーーーーーーーーーーーーーーーーーーーーーーー白王将ーーーーーーーーーーーー|黒銀将黒金将

    問題一覧へ戻る

    ページの先頭へ戻る