二次元配列を二重 for
文で調べる最低ライン!
問題概要
のグリッドにアルファベット文字が書かれたものが 2 つ (
) 与えられます。
これらは 1 箇所のみ異なっていることが保証されます。
であるような
を答えてください。
制約
解法 (C++)
グリッドデータ (A
と B
) は vector<string>
型で管理するとよいでしょう。このとき、グリッド A
の上から 行目 (0-indexed)、左から
列目 (0-indexed) のマスの文字は
A[i][j]
と表せます。
よって、各 に対して、
A[i][j] != B[i][j]
であるかどうかを判定していけばよいでしょう。そして、そのようになっている (を 1-indexed に直したもの) を記録しておきましょう。
コード
#include <bits/stdc++.h> using namespace std; int main() { int N; cin >> N; vector<string> A(N), B(N); for (int i = 0; i < N; ++i) cin >> A[i]; for (int i = 0; i < N; ++i) cin >> B[i]; int x = -1, y = -1; for (int i = 0; i < N; ++i) for (int j = 0; j < N; ++j) { if (A[i][j] != B[i][j]) { x = i+1, y = j+1; } } cout << x << " " << y << endl; }