[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; } }
댓글
댓글 쓰기