Algorithm (PS)

[백준 1652] 누울자리를 찾아라 파이썬 풀이

minjiwoo 2021. 7. 19. 09:10
728x90

 

 

내가 해멧던 부분 

처음에 board[i][j] 랑 board[i][j+1] 를 검사하는 방향으로 생각했는데 이렇게 되면 중접되서 . 을 확인하는게 되어버리니.. 잘못된 풀이다

그리고 파이썬이 아직 덜 익숙한지라, 배열 입력받는게 헷갈렸다. 이번에는 띄워쓰기 없이 그냥 입력받아야 하는데

 

list(input()) 으로 해도 괜찮고

아래 풀이처럼 이 경우는 바로 입력받은 한줄을 append해도 괜찮다 !

#1652 백준
board = [] # 2차원 배열
n = int(input()) # n*n 길이 입력받기
for i in range(n):
    board.append(input()) # 배열 입력받기

col_result = 0 # 세로 결과
row_result = 0 # 가로 결과

# 가로의 경
for i in range(n):
    cnt = 0
    for j in range(n):
        if board[i][j] == '.':
            cnt += 1
        elif board[i][j] == 'X':
            if cnt >= 2:
                row_result += 1
            cnt = 0 # 다시 초기화를 해줘서 쓸수있게 함 
        if j == n-1:
            if cnt >= 2:
                row_result += 1

#세로의 경우
for i in range(n):
    cnt = 0
    for j in range(n):
        if board[j][i] == '.':
            cnt+=1
        elif board[j][i] == 'X':
            if cnt >= 2:
                col_result += 1
            cnt = 0
        if j == n-1:
            if cnt >= 2:
                col_result += 1

print(row_result, col_result)
728x90