https://atcoder.jp/contests/past202004-open/tasks/past202004_a
解説
https://atcoder.jp/contests/past202004-open/submissions/12893803
やり方はいろいろありそうだが、自分はフロアを下から順に0,1,2,3,...,17と番号を付けて、
それに変換して、フロアの差をとると答え。
f(s) := フロア名がsのときの番号を返す
フロア名を順番に配列に入れて置き、フロア番号が添え字となるようにしておく。
これで順番に精査していって、当てはまるものがあれば、それをフロア番号として返す。
string S, T; //--------------------------------------------------------------------------------------------------- vector<string> floors; int f(string s) { rep(i, 0, 18) if (floors[i] == s) return i; } //--------------------------------------------------------------------------------------------------- void _main() { cin >> S >> T; rrep(i, 9, 1) floors.push_back("B" + to_string(i)); rep(i, 1, 10) floors.push_back(to_string(i) + "F"); int s = f(S); int t = f(T); int ans = abs(s - t); cout << ans << endl; }