https://www.acmicpc.net/problem/2804
2804번: 크로스워드 만들기
A의 길이를 N, B의 길이를 M이라고 했을 때, 출력은 총 M줄이고, 각 줄에는 N개 문자가 있어야 한다. 문제 설명에 나온 것 같이 두 단어가 교차된 형태로 출력되어야 한다. 나머지 글자는 '.'로 출력
www.acmicpc.net
나의 코드
A, B = input().split()
for i in A:
if i in B:
result = (A.index(i), B.index(i))
break
arr = [['.'] * len(A) for _ in range(len(B))]
for i in range(len(A)):
arr[result[1]][i] = A[i]
for j in range(len(B)):
arr[j][result[0]] = B[j]
for k in arr:
print(''.join(k))
결과

set으로 중복제거 후에 index를 쓰면 찾는 문자의 인덱스를 찾을 수 있을 것 같다고 생각했다. 근데 중복된 문자가 두 개 이상일 경우 set은 순서가 없어서 섞이게 되고 제일 먼저 나오는 문자를 찾을 수 없을 수도 있다. 그리고 for이 두 개일 때는 break를 써도 밖의 for은 빠져나올 수 없기 때문에 for 두 개를 써야 할 때는 for과 if를 쓸 수 있도록 해야 한다.
'스터디 1일 1커밋' 카테고리의 다른 글
| 240222 [swea] 19185. 육십갑자 (0) | 2024.02.23 |
|---|---|
| 240221 [BOJ/백준] 2309. 일곱 난쟁이 (0) | 2024.02.21 |
| 240219 [BOJ/백준] 18258. 큐 2 (0) | 2024.02.19 |
| 240218 [BOJ/백준] 1966. 프린터 큐 (0) | 2024.02.18 |
| 240217 [BOJ/백준] 10828. 스택 (1) | 2024.02.17 |