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. 7. 16:18
def impossible(answer):
    for x,y,a in answer:
        if a == 0:
            if (x,y-1,0) in answer or (x-1,y,1) in answer or (x,y,1) in answer or y == 0:
                continue
            else:
                return True
        else:
            if (x,y-1,0) in answer or (x+1,y-1,0) in answer or ((x-1,y,1) in answer and (x+1,y,1) in answer):
                continue
            else:
                return True
    return False

def solution(n, build_frame):
    answer = set()
    for x,y,a,b in build_frame:
        item = (x,y,a)
        if b:
            answer.add(item)
            if impossible(answer):
                answer.remove(item)
        else:
            answer.remove(item)
            if impossible(answer):
                answer.add(item)

    return sorted(map(list,answer),key=lambda x:(x[0],x[1],x[2]))

 

먼저 설치 또는 제거하고, 모든 구조물이 조건에 맞는지 검사한다.

만약 조건에 맞지 않다면 원상복구하고, 맞다면 그대로 둔다.

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

블록 이동하기 파이썬  (0) 2022.02.09
외벽 점검 파이썬  (0) 2022.02.08
가사 검색  (0) 2022.02.06
자물쇠와 열쇠 파이썬  (0) 2022.02.05
괄호변환 파이썬  (0) 2022.02.05
Comments