🐸 문제 정보
🤖 알고리즘
구현
⏱️ 풀이 시간
21.34
📝 풀이
처음에 문제 이해도 안되고, BFS로 풀어야하나 하고 조금 고민하느라 시간이 오래 걸렸다.
그냥 십자말풀이라고 적어놓지... 왜 크로스워드 퍼즐이라고 적어놨을까....
여튼 풀이 방법 자체는 간단했다.
- 행과 열을 문자열로 각각 분리
- 각 행과 열에 대해서 #으로 split
- 길이가 1 이상이라면 substring 조건에 충족하므로, res 배열에 담기
- res를 사전순으로 정렬 후 가장 앞에있는 문자열이 정답
🧑💻 나의 답
# pypy3
import sys
input = sys.stdin.readline
r, c = list(map(int, input().rstrip().split()))
puzzle = [list(input().rstrip()) for _ in range(r)]
res = []
for row in puzzle:
res.extend([word for word in ''.join(row).split('#') if len(word) > 1])
for col in list(zip(*puzzle)):
res.extend([word for word in ''.join(col).split('#') if len(word) > 1])
print(sorted(res)[0])
'PS > 문제풀이' 카테고리의 다른 글
백준 4485 녹색 옷 입은 애가 젤다지? Python (0) | 2024.02.05 |
---|---|
백준 2668 숫자고르기 Python (0) | 2024.02.05 |
백준 1251 단어 나누기 Python (1) | 2024.02.05 |
백준 11728 배열 합치기 Python (0) | 2024.02.02 |
백준 15565 귀여운 라이언 Python (0) | 2024.02.02 |