KEEP GOING

[python] SWEA : 어디에 단어가 들어갈 수 있을까 본문

code review/implementation

[python] SWEA : 어디에 단어가 들어갈 수 있을까

jmHan 2022. 7. 1. 20:55
반응형

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PuPq6AaQDFAUq&categoryId=AV5PuPq6AaQDFAUq&categoryType=CODE&problemTitle=1979&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=&pageSize=10&pageIndex=1 

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

[문제 풀이]

for tc in range(1, int(input())+1):
    answer = 0
    n, k = map(int, input().split())
    board = [list(map(int, input().split())) for _ in range(n)]

    # 가로 체크
    for i in range(n):
        for j in range(n-k+1):
            check = 0
            # 가로로 k개 검사 
            for b in range(j, j+k):
                if board[i][b]:
                    check += 1
            # k개가 1인 경우 
            if check == k:
                # 양 옆에 하나라도 1이 있는 경우 무시 
                if j-1 >= 0 and board[i][j-1]:
                    continue
                if j+k < n and board[i][j+k]:
                    continue
                answer += 1
    # 세로 체크
    for i in range(n-k+1):
        for j in range(n):
            check = 0
            # 세로로 k개 검사
            for a in range(i, i+k):
                if board[a][j]:
                    check += 1
            # k개가 1인 경우
            if check == k:
            	# 양 옆에 하나라도 1이 있는 경우 무시
                if i-1 >= 0 and board[i-1][j]:
                    continue
                if i+k < n and board[i+k][j]:
                    continue
                answer += 1

    print(f'#{tc}', answer)

 

반응형
Comments