반응형
import sys
readline = sys.stdin.readline
def rotate(key):
return list(list(x)[::-1] for x in zip(*key))
def check(N, M, board):
for x in range(M-1, M+N-1):
for y in range(M-1, M+N-1):
if board[x][y] != 1:
return False
return True
def solution(key, lock):
M = len(key)
N = len(lock)
board = [[0] * ((M-1)+N+(M-1)) for _ in range((M-1)+N+(M-1))]
for i in range(N):
for j in range(N):
board[M-1+i][M-1+j] = lock[i][j]
for rot in range(4):
key = rotate(key)
for x in range(M-1+N):
for y in range(M-1+N):
for a in range(M):
for b in range(M):
board[x+a][y+b] += key[a][b]
if check(N, M, board):
return True
for c in range(M):
for d in range(M):
board[x+c][y+d] -= key[c][d]
return False
반응형
'Develop > 코딩인터뷰' 카테고리의 다른 글
[코딩인터뷰] 백준 16118번 달빛 여우 (0) | 2021.04.15 |
---|---|
[코딩인터뷰] 2020 카카오 신입 공채 - 문자열 압축 (0) | 2021.04.04 |
[코딩인터뷰] 백준 2110번 공유기 설치 (0) | 2021.03.30 |
[코딩인터뷰] 백준 10986번 나머지 합 (0) | 2021.03.29 |
[코딩인터뷰] 백준 13398번 연속합 2 (0) | 2021.03.28 |
꾸준히 노력하는 개발자 "김예건" 입니다.