백준 & 프로그래머스

백준.누울 자리를 찾아라.py

concho 2023. 9. 10. 23:51

https://www.acmicpc.net/problem/1652

 

1652번: 누울 자리를 찾아라

첫째 줄에 방의 크기 N이 주어진다. N은 1이상 100이하의 정수이다. 그 다음 N줄에 걸쳐 N개의 문자가 들어오는데 '.'은 아무것도 없는 곳을 의미하고, 'X'는 짐이 있는 곳을 의미한다.

www.acmicpc.net

# 풀이 설계
# 풀기 편하게 리스트 형식으로 만들어 준다.
# . 개수를 cnt한다, x 면 초기화
# . 개수가 2개이면 누울수 있는 자리로 cnt
# 방을 회전시킨다.
# 위 과정을 다시 한다.
# 끝
import sys
def dot_cal(str_list):
    total_cnt = 0
    for st in str_list:
        dot_cnt = 0
        for ch in st:
            if ch == '.':
                dot_cnt += 1
            else:
                dot_cnt = 0

            if dot_cnt == 2:
                total_cnt += 1
    return total_cnt
    
def turn_list(str_list,n):
    new_list = []
    for i in range(n):
        tm_list = []
        for j in range(n):
            tm_list.append(str_list[j][i])
        new_list.append(''.join(tm_list))
    return new_list

if __name__ == '__main__':
    n = int(input())
    str_list = []
    for _ in range(n):
        str_list.append(sys.stdin.readline().replace('\n',''))

    print(dot_cal(str_list), end=' ')
    print(dot_cal(turn_list(str_list, n)))