개인적으로 조금 헤맸던 문제였다.
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의 갯수 세기
#배열 행, 열 바꾼다음에 한번더 진행
'알고리즘 > 문제풀이' 카테고리의 다른 글
sw Expert Academy 쉬운 거스름돈 (0) | 2022.07.29 |
---|---|
sw Expert Academy 시각 덧셈 (0) | 2022.07.29 |
sw Expert Academy D2 조교의 성적 매기기 (0) | 2022.07.29 |
sw Expert Academy D2 중간 평균값 구하기 (0) | 2022.07.29 |
sw Expert Academy D2 지그재그 숫자 (0) | 2022.07.29 |
댓글