문제풀이/BOJ
[Python] BOJ/백준 1652번 누울 자리를 찾아라
서채리
2021. 7. 11. 17:22
[문제]
https://www.acmicpc.net/problem/1652
1652번: 누울 자리를 찾아라
첫째 줄에 방의 크기 N이 주어진다. N은 1이상 100이하의 정수이다. 그 다음 N줄에 걸쳐 N개의 문자가 들어오는데 '.'은 아무것도 없는 곳을 의미하고, 'X'는 짐이 있는 곳을 의미한다.
www.acmicpc.net
[풀이]
방의 마지막이 'X'(벽)이여야 row_cnt와 col_cnt가 2 이상일 경우 누울 자리에 1을 더하기 때문에 입력받은 문자열에서 맨 오른쪽열과 맨 아래쪽행을 'X'로 패딩해주었다.
[코드]
if __name__ == '__main__':
n = int(input())
room = []
for _ in range(n):
room += [input() + 'X']
room.append('X' * (n+1))
row_seat, col_seat = 0, 0
for i in range(n + 1):
row_cnt, col_cnt = 0, 0
for j in range(n + 1):
# 가로
if room[i][j] == '.':
row_cnt += 1
elif room[i][j] == 'X':
if row_cnt >= 2:
row_seat += 1
row_cnt = 0
# 세로
if room[j][i] == '.':
col_cnt += 1
elif room[j][i] == 'X':
if col_cnt >= 2:
col_seat += 1
col_cnt = 0
print(row_seat, col_seat)