728x90
📌 문제
https://swexpertacademy.com/main/main.do
📌 문제 접근 방법
- 맨 처음에 문제를 이해를 못해서 헤맸다..!
- 길이가 K인 단어가 들어갈 자리라고 해서 K보다 커도 단어가 들어갈 수 있을 거라고 생각했는데
- 딱 K에 맞는 칸에만 단어가 들어갈 수 있었던 것!
- 만약 K가 3일 때, 11111이나 11101111와 같은 부분을 처리하느라 여러 번 틀렸다😥
- 0을 만나면 초기화
- 행 탐색(아래에서는 열 탐색)이 끝나면 cnt를 result리스트에 저장하는 방식으로 해결!
📌 코드
import sys
sys.stdin = open('input.txt')
T = int(input())
for t in range(1, T+1):
N, K = map(int, input().split())
puzzle = []
for _ in range(N):
puzzle.append(list(map(int, input().split())))
result = []
# 행 탐색
for i in range(len(puzzle)):
cnt = 0
for j in range(len(puzzle[i])):
# 1인 칸이면 cnt +1
if puzzle[i][j]:
cnt +=1
# 0인 칸을 만나면 cnt를 result리스트에 넣고 0으로 초기화
else:
result.append(cnt)
cnt = 0
# 만약 행의 마지막 숫자가 1이라면 cnt가 저장되지 않으므로
# 행 탐색이 끝난 후 cnt추가 (마지막 숫자가 0이라면 어차피 0)
result.append(cnt)
# 열 탐색
for j in range(len(puzzle[0])):
cnt = 0
for i in range(len(puzzle)):
if puzzle[i][j]:
cnt += 1
else:
result.append(cnt)
cnt = 0
result.append(cnt)
# result에서 K의 개수 세기
ans = 0
for num in result:
if num == K:
ans += 1
print('#{} {}'.format(t, ans))
728x90
'ALGORITHM > SW Expert Academy' 카테고리의 다른 글
[SWEA/Python] 1221. GNS (0) | 2021.08.23 |
---|---|
[SWEA/Python] 1210. Ladder1 (0) | 2021.08.13 |
[SWEA/Python] 4837. 부분집합의 합 (0) | 2021.08.13 |
[SWEA/Python] 4836. 색칠하기 (0) | 2021.08.13 |
[SWEA/Python] 4835. 구간합 (0) | 2021.08.13 |
댓글