SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
📌 작성한 코드
T = int(input())
for test in range(1,1+T):
n,k = map(int,input().split())
arr = [[int(x) for x in input().split()] for y in range(n)]
total_count = 0
for i in range(n):
target = [str(j[i]) for j in arr]
target_arr = "".join(target).split('0')
for a in target_arr:
if len(a) == k:
total_count+=1
for i in range(n):
target = list(map(str,arr[i]))
target_arr = "".join(target).split('0')
for a in target_arr:
if len(a) == k:
total_count+=1
print(f'#{test} {total_count}')
📌 풀이
1. 입력받기
- 배열 입력받는 일 많으니까 외워두기
n,k = map(int,input().split())
arr = [[int(x) for x in input().split()] for y in range(n)]
2. 세로줄 검사하기
- target : 세로줄만 추출
- target_arr : 추출한 세로줄을 join으로 합쳐서 문자열로 만들고, 0을 기준으로 자른 배열 -> 연속된 1들만 모임
- target_arr를 돌면서 해당 연속된 1의 길이가 구하고자하는 k의 길이와 같으면 +1 해주기
for i in range(n):
target = [str(j[i]) for j in arr]
target_arr = "".join(target).split('0')
for a in target_arr:
if len(a) == k:
total_count+=1
3. 가로줄 검사하기
: 세로줄과 똑같이 해주면 된다.
- target : 가로줄만 추출
- target_arr : 가로 세로줄을 join으로 합쳐서 문자열로 만들고, 0을 기준으로 자른 배열 -> 연속된 1들만 모임
- target_arr를 돌면서 해당 연속된 1의 길이가 구하고자하는 k의 길이와 같으면 +1 해주기
for i in range(n):
target = list(map(str,arr[i]))
target_arr = "".join(target).split('0')
for a in target_arr:
if len(a) == k:
total_count+=1

'알고리즘 > SWEA' 카테고리의 다른 글
| [Python] SWEA D3 : 1206 - [S/W 문제해결 기본] 1일차 - View (0) | 2023.11.07 |
|---|---|
| [Python] SWEA D2 : 1970 - 쉬운 거스름돈 (0) | 2023.11.06 |
| [Python] SWEA D2 : 1948 - 날짜 계산기 (1) | 2023.10.31 |
| [Python] SWEA D2 : 1976 - 시각 덧셈 (0) | 2023.10.31 |
| [Python] SWEA D2 : 1946 - 간단한 압축 풀기 (0) | 2023.10.31 |