https://programmers.co.kr/learn/courses/30/lessons/60062
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
'Programming > Programmers' 카테고리의 다른 글
[프로그래머스] 블록 이동하기 (Python) (0) | 2021.11.18 |
---|---|
[프로그래머스] 매칭 점수 (Python) (0) | 2021.11.18 |
[프로그래머스] 모두 0으로 만들기 (Python) (0) | 2021.11.17 |
[프로그래머스] 입양 시각 구하기(2) (MySQL) (0) | 2021.11.17 |
[프로그래머스] 우유와 요거트가 담긴 장바구니 (MySQL) (0) | 2021.11.16 |
댓글