[SWEA D2] 1979. 어디에 단어가 들어갈 수 있을까

shin·2022년 11월 8일
0

CodingTest 문제 풀이

목록 보기
27/79
post-thumbnail

문제 : [SWEA D2] 1979. 어디에 단어가 들어갈 수 있을까

풀이

T = int(input())
for t in range(1, T + 1):
    n, k = map(int, input().split(" "))
    arr = [list(input().split(" ")) for _ in range(n)]
    result = 0
    for i in range(n):
        row_count = 0
        column_count = 0
        for j in range(n):
            if arr[i][j] == "1":
                row_count += 1
            else:
                if row_count != k:
                    row_count = 0
                else:
                    result += 1
                    row_count = 0
            if arr[j][i] == "1":
                column_count += 1
            else:
                if column_count != k:
                    column_count = 0
                else:
                    result += 1
                    column_count = 0
        if row_count == k:
            result += 1
        if column_count == k:
            result += 1
    print(f"#{t} {result}")
  • 퍼즐을 숫자로 입력 받으면 Runtime error가 발생함
  • input.txt 파일을 보면 퍼즐 입력 뒤에 공백이 포함된 경우가 있고 이것이 오류를 유발함
  • 따라서 숫자 row 하나를 하나의 문자열로 받아서 숫자 1이 아닌 문자 1과 같은지 확인하는 방식을 통해 해결함
  • 행렬을 전치시키는 방법을 사용하지 않고 두 번째 for문 안에서 가로와 세로에 대해 다른 변수를 활용하여 카운트해서 한 번에 확인함
profile
Backend development

0개의 댓글