[Python] 프로그래머스(Lv3) - 자물쇠와 열쇠 (2020 KAKAO BLIND RECRUITMENT)
안녕하세요 :)
https://programmers.co.kr/learn/courses/30/lessons/60059
문제의 제한사항이 크지 않아 완전탐색으로 풀 수 있었습니다.
# 90도 회전
def turn(key):
return list(map(list, zip(*key[::-1])))
# 정확히 채웠는지 확인
def check(lock_padding):
n = len(lock_padding) // 3
for i in range(n, n*2):
for j in range(n, n*2):
if lock_padding[i][j] != 1:
return False
return True
# key를 lock_padding에 집어넣기
def key_in(key, lock_padding):
n = len(lock_padding) // 3
for x in range(n*2):
for y in range(n*2):
for i in range(len(key)):
for j in range(len(key)):
lock_padding[x + i][y + j] += key[i][j]
if check(lock_padding):
return True
for i in range(len(key)):
for j in range(len(key)):
lock_padding[x + i][y + j] -= key[i][j]
return False
def solution(key, lock):
n = len(lock)
lock_padding = [[0] * (n*3) for _ in range(n*3)]
for i in range(n):
for j in range(n):
lock_padding[i + n][j + n] = lock[i][j]
for _ in range(4):
if key_in(key, lock_padding):
return True
key = turn(key)
return False
Author And Source
이 문제에 관하여([Python] 프로그래머스(Lv3) - 자물쇠와 열쇠 (2020 KAKAO BLIND RECRUITMENT)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kerri/Python-프로그래머스Lv3-자물쇠와-열쇠-2020-KAKAO-BLIND-RECRUITMENT저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)