[백준 2804] 크로스워드 만들기

이지은·2020년 1월 31일
0

[백준 2804번 문제 링크] https://www.acmicpc.net/problem/2804

문제설명) 두 단어 a,b 가 있는다. a는 가로, b는 세로 놓이고 하나의 같은 문자로 크로스된다.
예)
입력)
a = abba, b=ccbb

출력)
.c..
.c..
abba
.b..

#include <iostream>
#include <string>
using namespace std;

int main() {
   string a, b;
   int ia, ib;
   bool check = false;
   cin >> a >> b;

   //문자열 A의 문자를 기준으로 문자열 B의 같은 문자 찾기
   for (int i = 0; i < a.size(); i++) {
      for (int j = 0; j < b.size(); j++) {
         if (a[i] == b[j]) {
            ia = i;
            ib = j;
            //처음 같은 문자일때 불리언값으로 탈출시킴
            check = true;
            break;
         }
      }
      if (check) break;
   }

   //출력, 문자열A길이는 가로, 문자열B길이는 세로
   for (int i = 0; i < b.size(); i++) {
      for (int j = 0; j < a.size(); j++) {
         if (i == ib) {
            cout << a;
            break;
         }
         if (j == ia) {
            cout << b[i];
            continue;
         }
         cout << ".";
      }
      cout << "\n";
   }
   system("pause");
   return 0;
}

0개의 댓글