STUDY/Algorithm

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

sinawi95 2021. 2. 23. 21:52
728x90

www.acmicpc.net/problem/2804

 

2804번: 크로스워드 만들기

A의 길이를 N, B의 길이를 M이라고 했을 때, 출력은 총 M줄이고, 각 줄에는 N개 문자가 있어야 한다. 문제 설명에 나온 것 같이 두 단어가 교차된 형태로 출력되어야 한다. 나머지 글자는 '.'로 출력

www.acmicpc.net

import sys
input = sys.stdin.readline

a, b = input().split()
n, m = len(a), len(b)
r, c = 0, 0
break_chk = False
for ind_a in range(n):
    for ind_b in range(m):
        if a[ind_a] == b[ind_b]:
            r = ind_b
            c = ind_a
            break_chk = True
            break
    if break_chk:
        break
matrix = []
cnt = 0
for row in range(m):
    if row == r:
        matrix.append(a)
    else:
        matrix.append('.' * c + b[cnt] + '.' * (n - c - 1))
    cnt += 1
for m in matrix:
    print(m)

쏘이즤~

a를 기준으로 b와 어떤 알파벳이 겹치는지 확인하고, 겹친 곳의 인덱스 값들을 저장해서 크로스워드로 만들어주면된다.