Programming/Programmers
[프로그래머스] 외벽 점검 (Python)
데이터현
2021. 11. 18. 00:09
https://programmers.co.kr/learn/courses/30/lessons/60062
코딩테스트 연습 - 외벽 점검
레스토랑을 운영하고 있는 "스카피"는 레스토랑 내부가 너무 낡아 친구들과 함께 직접 리모델링 하기로 했습니다. 레스토랑이 있는 곳은 스노우타운으로 매우 추운 지역이어서 내부 공사를 하
programmers.co.kr
set과 product를 이용해서 풀려고 했는데 시간초과가 나서
다른 풀이를 이용했다
def solution(n,weak,dist):
count = 0
repair_list = [()]
dist.sort(reverse = True)
for distance in dist:
repairs = []
count +=1
for i,st in enumerate(weak):
start = st
ends = weak[i:] + [n + a for a in weak[:i]]
move = [end % n for end in ends if end - start <= distance]
repairs.append(set(move))
new = set()
for repair in repairs:
for re in repair_list:
update = repair | set(re)
if len(set(weak) - update) == 0:
return count
new.add(tuple(update))
repair_list = new
return -1