본문 바로가기
코딩/이코테-파이썬

이코테: 구현 - 자물쇠와 열쇠

by 철없는민물장어 2022. 8. 29.
728x90
반응형

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


처음부터 다 구현하기는 힘들것같아서...

우선은 자물쇠와 키의 크기가 같을 때

회전만 해서 자물쇠를 따는걸 구현해보았다

def solution(key, lock):
    answer = False
    return answer

def turn_90(key): #행과 열을 바꿔서 90도 회전
    length=len(key)
    result=[]
    for i in range(length):
        tmp=[]
        for j in range(length-1,-1,-1):
            tmp.append(key[j][i])
        result.append(tmp)
    return result

def check(key,lock):
    answer=True
    for i in range(len(key)):
        for j in range(len(key)):
            lock[i][j]+=key[i][j]
    for i in range(len(key)):
        for j in range(len(key)):
            if lock[i][j]==1:
                continue
            else:
                answer=False
    
    #원상복구
    for i in range(len(key)):
        for j in range(len(key)):
            lock[i][j]-=key[i][j]
    return answer
                
    

key=[[0,0,0],[0,0,0],[0,0,1]]
lock=[[0,1,1],[1,1,1],[1,1,1]]

for i in range(4):
    key=turn_90(key)
    if check(key,lock):
        print("뚫음")
        print(key)
        print(lock)
    else:
        print("NO")

열쇠를 상하좌우 이동시키는게 너무 복잡해서 풀이를 보고 다시 작성해야할것같다

728x90
반응형

'코딩 > 이코테-파이썬' 카테고리의 다른 글

구현: 기둥과 보 설치 (python)  (0) 2022.08.31
이코테 구현: 자물쇠와 열쇠  (0) 2022.08.29
문자열 압축  (0) 2022.08.28
무지의 먹방라이브  (2) 2022.08.24
알고리즘 기출문제: 그리디2  (1) 2022.08.17

댓글