🔍처음 보트에 2명까지밖에 타지 못 한다는 조건을 못 보고 골치아파서 여러 조건을 주면서 풀다가 2명 까지의 조건을 보고 탄식을 했다.
🔍보트 인원이 최대 2명으로 제한되면 난이도가 내려가지만 없어진다면 40kg 40kg 40kg 40kg 40kg 40kg 6명이 최대 보트 240kg에 탈 수 있기 때문.
정렬 후 del, remove를 쓰면 시간 복잡도 초과 날 것이 분명했기 때문에 보트에 혼자 타는 사람을 센 후 나머지 사람을 새 리스트에 넣어 계산하려 했지만
아니였으니 바로 패스...📚if people[i] + 40 > limit: cnt += 1
이런 식으로
🔍 정렬까지는 생각했고 2명을 태우니 앞뒤로 빼면 된다는 생각으로 deque 사용
from collections import deque
def solution(people, limit):
cnt = 0
people = sorted(people)
temp = deque(people)
while temp:
if len(temp) >= 2:
if temp[-1] + 40 > limit:
cnt += 1
temp.pop()
continue
if temp[-1] + temp[0] > limit:
cnt += 1
temp.pop()
elif temp[-1] + temp[0] <= limit:
cnt += 1
temp.pop()
temp.popleft()
else:
if temp[0] <= limit:
temp.pop()
cnt += 1
return cnt
🔍 조금이라도 시간을 줄이기 위해
if len(temp) >= 2: if temp[-1] + 40 > limit: cnt += 1 temp.pop() continue
처음 생각했던 코드를 추가해주니 조금은 시간이 줄었다