Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

JH 개발 블로그

자물쇠와 열쇠 파이썬 본문

코딩테스트/2020 KAKAO BLIND RECRUITMENT

자물쇠와 열쇠 파이썬

쿠우우훈 2022. 2. 5. 20:45
def solution(key, lock):
    n,m = len(lock),len(key)
    new_map = [[0]*(2*(m-1)+n) for _ in range(2*(m-1)+n)]
    for i in range(n):
        for j in range(n):
            new_map[m-1+i][m-1+j] = lock[i][j]

    for _ in range(4):
        for i in range(m-1+n):
            for j in range(m-1+n):
                for k in range(m):
                    for l in range(m):
                        new_map[i+k][j+l] += key[k][l]
                flag = True
                for k in range(n):
                    for l in range(n):
                        if new_map[m-1+k][m-1+l] != 1:
                            flag = False
                            break
                if flag:
                    return True
                for k in range(m):
                    for l in range(m):
                        new_map[i+k][j+l] -= key[k][l]
        key = list(zip(*key[::-1]))
    return False

bfs로 푸는건 테스트케이스 7개가 시간초과가 났다..

 

결국 배열의 크기를 확장해서 lock을 배열의 중앙에 두고 key를 옮겨가며 맞춰보는 방법으로 풀었다.

'코딩테스트 > 2020 KAKAO BLIND RECRUITMENT' 카테고리의 다른 글

외벽 점검 파이썬  (0) 2022.02.08
기둥과 보 설치 파이썬  (0) 2022.02.07
가사 검색  (0) 2022.02.06
괄호변환 파이썬  (0) 2022.02.05
문자열 압축 파이썬  (0) 2022.02.05
Comments