본문 바로가기
알고리즘/문제풀이

sw Expert Academy 어디에 단어가 들어갈 수 있을까

by 새싹감자 2022. 7. 29.

개인적으로 조금 헤맸던 문제였다.

0으로 split하고 1의 길이를 세는 방법으로 풀고, 세로방향을 배열의 열과 행을 바꾸어서 똑같은 방법으로 다시 세어주었다.

testcase=int(input())
for q in range(testcase):
    n,k= map(int,input().split())
    count=0
    row=[[0]*n for _ in range(n)]
    row2=[0]*n
    col=[[0]*n for _ in range(n)]
    col2=[0]*n
    result=[]
    result2=[]

    for r in range(n):
        row[r]=list(map(str,input().split()))
        row2[r]=''.join(row[r])

    for r in range(n):
     result.append(str(row2[r]).split('0'))

    for r in range(n):
        for j in range(len(result[r])):
            result[r][j] = result[r][j].replace(" ", "")
            if(len(result[r][j])==k):
             count=count+1

    col = list(map(list, zip(*row)))
    for r in range(n):
        col2[r]=''.join(col[r])

    for r in range(n):
        result2.append(str(col2[r]).split('0'))

    for r in range(n):
        for j in range(len(result2[r])):
            result2[r][j] = result2[r][j].replace(" ", "")
            if (len(result2[r][j]) == k):
                count = count + 1
    print('#{} {}'.format(q+1,count))
    count=0

#배열에 있는 원소들 str로 한줄로 들어오게 만든다음에 0으로 split해서 1의 갯수 세기
#배열 행, 열 바꾼다음에 한번더 진행
 

댓글