반응형
문제:
https://www.acmicpc.net/problem/1236
1236번: 성 지키기
첫째 줄에 성의 세로 크기 N과 가로 크기 M이 주어진다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 성의 상태가 주어진다. 성의 상태는 .은 빈칸, X는 경비원이 있는 칸이다
www.acmicpc.net
풀이:
이 문제는 해결 아이디어를 잘 생각할 필요가 있었다. 나는 접근을 잘못했고 결국 스스로 해결하지 못했다.
모자란 경비원의 수를 세는 아이디어는
행 기준, 열 기준으로 경비원이 필요한 수를 각각 계산해 더 큰 값을 출력하는 것이다.
col, row = map(int, input().split())
castle = []
for _ in range(col):
castle.append(input())
a, b = 0, 0
for i in range(col):
if "X" not in castle[i]:
a += 1
for j in range(row):
if "X" not in [castle[i][j] for i in range(col)]:
b += 1
print(max(a, b))
이 코드를 보면 리스트 내포(List comprehension)을 사용한 것을 볼 수 있다.
문제를 풀면서 탐색을 어떻게 할지에 대해 고민을 많이 했는데, 리스트 내포를 사용하면 아주 간단하게 할 수 있었다.
리스트 내포를 잘 기억해두고 사용할 수 있도록 하자.
반응형
'Python 코딩테스트' 카테고리의 다른 글
DFS/BFS: 백준 2606 파이썬 (0) | 2021.08.18 |
---|---|
DFS/BFS: 백준 16173 파이썬 (0) | 2021.08.12 |
구현: 백준 2851 파이썬(Python) (0) | 2021.08.03 |
구현: 백준 1157 파이썬(Python) (0) | 2021.08.03 |
구현: 백준 2750 파이썬(Python) (0) | 2021.08.03 |