728x90
1652번: 누울 자리를 찾아라
첫째 줄에 방의 크기 N이 주어진다. N은 1이상 100이하의 정수이다. 그 다음 N줄에 걸쳐 N개의 문자가 들어오는데 '.'은 아무것도 없는 곳을 의미하고, 'X'는 짐이 있는 곳을 의미한다.
www.acmicpc.net
n = int(input())
l = [[] for _ in range(n)]
for i in range(n):
inp = input()
for j in inp:
l[i].append(j)
l_rot = [['' for _ in range(n)] for _ in range(n)]
for i in range(n):
for j in range(n):
l_rot[j][n-1-i]=l[i][j] # 90도 회전 행렬 (세로도 가로처럼)
row, col = 0, 0
for i in range(n):
r = -1
for j in range(n):
if l[i] == ['.', '.', '.', '.', '.']: # 한 줄이 다 비었으면 + 1
row += 1
r = n
break
if l[i][j] == 'X': # (현재 X 인곳의 col - 이전 X 인 col) > 2 이면 + 1
if j - r > 2:
row += 1
r = j
if n - 1 - r >= 2: # (벽(n-1) - 마지막 X 인곳의 col) == 2 이면 + 1
row += 1
for i in range(n):
c = -1
for j in range(n):
if l_rot[i] == ['.', '.', '.', '.', '.']:
col += 1
c = n
break
if l_rot[i][j] == 'X':
if j - c > 2:
col += 1
c = j
if n - 1 - c >= 2:
col += 1
print(row, col)
반응형
'전.py' 카테고리의 다른 글
백준 2669 직사각형 네개의 합집합의 면적 구하기 (0) | 2020.12.13 |
---|---|
백준 6603 로또 (0) | 2020.12.12 |
백준 2667 단지번호붙이기 (실패) (0) | 2020.12.12 |
백준 2605 줄 세우기 (0) | 2020.12.12 |
백준 2606 바이러스 (0) | 2020.12.12 |