알고리즘 문제 풀기/백준(Baekjoon)

[백준 알고리즘] 2804. 크로스워드 만들기 _ 파이썬

hibscus 2021. 2. 13. 19:06

 

 

 

💻 문제 풀이 접근 방법

 

1) A와 B의 공유 글자를 A를 기준으로 찾고 글자와, A의 idx 저장

(공유 글자가 여럿인 경우 A에서 제일 먼저 등장하는 글자가 공유 글자이기 때문)

 

2) B에서의 공유 글자 위치를 찾고

 

3) 각각의 idx 값을 이용해 출력

 

 

 

 

A, B = input().split()

# 공유글자 찾기
for i in range(len(A)):
    if A[i] in B:
        share = A[i]
        A_idx = i
        break
        
# B에서의 공유 글자 위치 찾기
for i in range(len(B)):
    if B[i] == share:
        B_idx = i
        break

result = ['.'] * len(A)
for i in range(len(B)):
    result[A_idx] = B[i]
    if i == B_idx:
        print(A)
    else:
        print("".join(map(str, result)))

 

 

 

 

다른 분들의 코드를 보니 toggle이나 flag를 사용해 푼 것을 볼 수 있었습니다.

 

flag 방법도 괜찮은 것 같아 다음에도 flag를 이용해 풀어봐야겠다.

 

 

 

www.acmicpc.net/problem/2804

 

2804번: 크로스워드 만들기

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

www.acmicpc.net