Post List

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

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


두 문자열이 주어집니다.
두 문자열의 각 문자들이 처음으로 같은 문자를 가질 때의 문자열 A, B의 index를 저장.
그리고 출력시 공유하는 문자를 출력할 순서가 되면 A를 통째로 출력하면 됨.


소스 코드 : 


#include 
#include 
#include 
using namespace std;

int main() {
 string a, b;
 cin >> a >> b;
 int asize, bsize;
 asize = a.length();
 bsize = b.length();
 bool br = false;
    // 공유하는 문자의 index를 저장할 pair 선언.
 pair index = { 0,0 };
 for (int i = 0; i < asize; i++) {
  for (int j = 0; j < bsize; j++) {
            // 문자열 A, B가 같은 문자를 공유한다면 pair에 index 저장.
   if (a[i] == b[j]) {
    br = true;
    index.first = i;
    index.second = j;
    break;
   }
  }
  if (br) break;
 }
    
 for (int i = 0; i < bsize; i++) {
     // A의 공유된 문자와 B의 공유된 문자를 출력할 차례라면
        // A문자 통째로 출력.
        if (i == index.second) {
   cout << a << endl;
   continue;
  }
  for (int j = 0; j < asize; j++) {
   if (j == index.first) {
    cout << b[i];
   }
   else cout << '.';
  }
  cout << endl;
 }
}

댓글