728x90
시간 제한 : 1초
메모리 제한 : 128MB
입력
첫째 줄에 두 단어 A와 B가 주어진다. 두 단어는 30글자 이내이고, 공백으로 구분되어져 있다. 또, 대문자로만 이루어져 있고, 적어도 한 글자는 두 단어에 포함되어 있다.
출력
A의 길이를 N, B의 길이를 M이라고 했을 때, 출력은 총 M줄이고, 각 줄에는 N개 문자가 있어야 한다. 문제 설명에 나온 것 같이 두 단어가 교차된 형태로 출력되어야 한다. 나머지 글자는 '.'로 출력한다.
소스코드
#include <iostream> #include <string> using namespace std; int main(void) { string a, b; int alen, blen, aIdx = -1, bIdx = -1; cin >> a >> b; alen = a.length(); blen = b.length(); for (int i = 0; i < alen && aIdx==-1; i++) { for (int j = 0; j < blen; j++) { if (a[i] == b[j]) { aIdx = i, bIdx = j; break; } } } for (int i = 0; i < blen; i++) { if (i == bIdx) { cout << a; } else { for (int j = 0; j < alen; j++) { if (j == aIdx) cout << b[i]; else cout << '.'; } } cout << endl; } }
Tip
간단한 문자열 처리 문제다.
728x90
'Computer Science > Algorithm Problem' 카테고리의 다른 글
백준] 15720 - 카우버거(중앙대 CodeRace 2018) (0) | 2018.07.11 |
---|---|
백준] 3076 - 상근이의 체스판(COCI 2012/2013) (0) | 2018.07.09 |
백준] 2502 - 떡 먹는 호랑이(KOI 2008 지역본선) (0) | 2018.06.22 |
백준] 10156 - 과자(KOI 지역본선 2014) (0) | 2018.06.20 |
백준] 1238 - 파티(USACO 2007) (0) | 2018.06.18 |