JH 개발 블로그
기둥과 보 설치 파이썬 본문
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