Skip to content

Commit

Permalink
[Bronze I] Title: 크로스워드 만들기, Time: 108 ms, Memory: 108080 KB -Baekjoo…
Browse files Browse the repository at this point in the history
…nHub
  • Loading branch information
hmnd1257 committed Mar 13, 2024
1 parent 50e1285 commit cbbf777
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 0 deletions.
35 changes: 35 additions & 0 deletions 백준/Bronze/2804. 크로스워드 만들기/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# [Bronze I] 크로스워드 만들기 - 2804

[문제 링크](https://www.acmicpc.net/problem/2804)

### 성능 요약

메모리: 108080 KB, 시간: 108 ms

### 분류

구현, 문자열

### 제출 일자

2024년 3월 13일 20:29:48

### 문제 설명

<p>창영이는 크로스워드 퍼즐을 만들려고 한다.</p>

<p>두 단어 A와 B가 주어진다. A는 가로로 놓여야 하고, B는 세로로 놓여야 한다. 또, 두 단어는 서로 교차해야 한다. (정확히 한 글자를 공유해야 한다) 공유하는 글자는 A와 B에 동시에 포함되어 있는 글자여야 하고, 그런 글자가 여럿인 경우 A에서 제일 먼저 등장하는 글자를 선택한다. 마찬가지로 이 글자가 B에서도 여러 번 등장하면 B에서 제일 처음 나오는 것을 선택한다. 예를 들어, A = "ABBA"이고, B = "CCBB"라면, 아래와 같이 만들 수 있다.</p>

<pre style="text-align: center;">.C..
.C..
ABBA
.B..</pre>

### 입력

<p>첫째 줄에 두 단어 A와 B가 주어진다. 두 단어는 30글자 이내이고, 공백으로 구분되어져 있다. 또, 대문자로만 이루어져 있고, 적어도 한 글자는 두 단어에 포함되어 있다.</p>

### 출력

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

Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
s1, s2 = map(str, input().split())

for i in range(len(s1)):
if s1[i] in s2:
col = i
row = s2.index(s1[i])
break

for i in range(len(s2)):
if i == row:
print(s1)
else:
print('.'*col + s2[i] + '.'*(len(s1)-col-1))

0 comments on commit cbbf777

Please sign in to comment.