반응형
swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PuPq6AaQDFAUq
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
1. nomal
T = int(input())
for tc in range(1, T+1):
# N: 2차원 리스트 크기, K: 내가 원하는 길이
N, K = map(int, input().split())
#리스트 내포 방식을 활용한 입력
puzzle = [list(map(int, input().split())) for _ in range(N)]
ans = 0
for i in range(N):
cnt = 0
# 행을 검사
for j in range(N):
if puzzle[i][j] == 1:
cnt += 1
if puzzle[i][j] == 0 or j == N-1:
# 벽을 만났을 때 그동안 쌇아온 cnt 값이 k이면 들어갈 수 있다.
if cnt == K:
ans += 1
cnt = 0
# 열을 검사
for j in range(N):
if puzzle[j][i] == 1:
cnt += 1
if puzzle[j][i] == 0 or j == N-1:
if cnt == K:
ans += 1
cnt = 0
print("#{} {}".format(tc, ans))
2. 가벽을 세우는 방법 (수정예정)
# 가벽을 세우는 방법
for tc in range(1, T+1):
N, K = map(int, input().split())
puzzle = [list(map(int, input().split())) + [0] for _ in range(N)]
puzzle.append([0]*(N+1))
ans = 0
for i in puzzle:
cnt = 0
# 벽을 한칸 더 둘렀기 때문에 증가
for j in range(N+1):
if puzzle[i][j]:
cnt += 1
else:
if cnt == K:
ans += 1
cnt = 0
# 열 우선 순회
for j in range(N+1):
if puzzle[j][i]:
cnt += 1
else:
if cnt == K:
ans += 1
cnt = 0
print("#{} {}".format(tc, ans))
반응형
'알고리즘 > SWEA' 카테고리의 다른 글
[파이썬] [SWEA] 1210. [S/W 문제해결 기본] 2일차 - Ladder1 (0) | 2021.02.20 |
---|---|
[파이썬] [SWEA] 1221. [S/W 문제해결 기본] 5일차 - GNS (0) | 2021.02.20 |
[파이썬] [SWEA] 1216. [S/W 문제해결 기본] 3일차 - 회문2 (0) | 2021.02.20 |
[파이썬] [SWEA] 5356. 의석이의 세로로 말해요 (0) | 2021.02.20 |
[파이썬] [SWEA] 5432. 쇠막대기 자르기 (0) | 2021.02.20 |
댓글