ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 자물쇠와 열쇠
    코딩 테스트/Level 3 2020. 10. 3. 18:12
    반응형

    자물쇠와 열쇠
    2020 KAKAO BLIND RECRUITMENT 
    1754명 완료

    https://programmers.co.kr/learn/courses/30/lessons/60059

     

    코딩테스트 연습 - 자물쇠와 열쇠

    [[0, 0, 0], [1, 0, 0], [0, 1, 1]] [[1, 1, 1], [1, 1, 0], [1, 0, 1]] true

    programmers.co.kr

    어려운 문제는 아니옵고..
    절차가 좀 복잡한 문제..  
    깊은 복사에 주의하면 좋을 듯.. 

    카카오의 테스트에는 구현이 복잡한 문제가 꼭 나오는 군요. 
    알고리듬 뿐만 아니라 코드 구현 능력까지 테스트 하는 듯합니다. 

    def solution(key, lock):
        from copy import deepcopy
        for _ in range(4):
            for i in range(-len(key) + 1, len(lock)):
                for j in range(-len(key) + 1, len(lock)):
                    temp_lock = deepcopy(lock)
                    for a in range(len(key)):
                        for b in range(len(key)):
                            if not ((0 <= i + a < len(lock)) and (0 <= j + b < len(lock))):
                                continue
                            temp_lock[i + a][j + b] = 1 if key[a][b] ^ temp_lock[i + a][j + b] else 0
                    if all(all(each) for each in temp_lock):
                        return True
            key = [[key[len(key) - j - 1][i] for j in range(len(key))] for i in range(len(key))]
        return False
    정확성  테스트
    테스트 1 〉	통과 (1.53ms, 10.6MB)
    테스트 2 〉	통과 (0.59ms, 10.8MB)
    테스트 3 〉	통과 (50.36ms, 10.8MB)
    테스트 4 〉	통과 (0.38ms, 10.8MB)
    테스트 5 〉	통과 (83.45ms, 10.8MB)
    테스트 6 〉	통과 (138.33ms, 10.9MB)
    테스트 7 〉	통과 (147.71ms, 10.8MB)
    테스트 8 〉	통과 (302.41ms, 10.7MB)
    테스트 9 〉	통과 (343.64ms, 10.6MB)
    테스트 10 〉	통과 (837.13ms, 10.8MB)
    테스트 11 〉	통과 (1094.76ms, 10.8MB)
    테스트 12 〉	통과 (0.37ms, 10.8MB)
    테스트 13 〉	통과 (36.01ms, 10.9MB)
    테스트 14 〉	통과 (7.66ms, 10.8MB)
    테스트 15 〉	통과 (17.84ms, 10.8MB)
    테스트 16 〉	통과 (106.35ms, 10.7MB)
    테스트 17 〉	통과 (4.09ms, 10.8MB)
    테스트 18 〉	통과 (199.17ms, 10.9MB)
    테스트 19 〉	통과 (4.15ms, 10.7MB)
    테스트 20 〉	통과 (559.30ms, 10.8MB)
    테스트 21 〉	통과 (59.66ms, 10.8MB)
    테스트 22 〉	통과 (93.62ms, 10.8MB)
    테스트 23 〉	통과 (12.31ms, 10.8MB)
    테스트 24 〉	통과 (12.37ms, 10.8MB)
    테스트 25 〉	통과 (734.57ms, 10.8MB)
    테스트 26 〉	통과 (664.69ms, 10.7MB)
    테스트 27 〉	통과 (1225.61ms, 10.8MB)
    테스트 28 〉	통과 (74.11ms, 10.7MB)
    테스트 29 〉	통과 (22.49ms, 10.8MB)
    테스트 30 〉	통과 (109.35ms, 10.8MB)
    테스트 31 〉	통과 (434.41ms, 10.8MB)
    테스트 32 〉	통과 (814.59ms, 10.8MB)
    테스트 33 〉	통과 (110.31ms, 10.9MB)
    테스트 34 〉	통과 (0.87ms, 10.7MB)
    테스트 35 〉	통과 (7.61ms, 10.8MB)
    테스트 36 〉	통과 (13.84ms, 10.7MB)
    테스트 37 〉	통과 (9.95ms, 10.8MB)
    테스트 38 〉	통과 (4.17ms, 10.8MB)
    반응형
Designed by Tistory.