실패한 나의 풀이
def solution(people, limit):
people=sorted(people)
cnt=0
while(len(people)!=0):
if people[0]+people[-1]<=limit:
cnt+=1
people.pop(-1)
if people:
people.pop(0)
else:
people.pop(-1)
cnt+=1
return cnt
성공한 나의 풀이
def solution(people, limit):
people.sort() #오름차순으로 정렬한다.
cnt = 0
left = 0 # 몸무게가 적으면서 가장 앞에 있는 사람의 위치
right = len(people) - 1 # 몸무게가 가장 많으면서 뒤에 있는 사람위치
while left <= right: # left == right 일때 까지 반복한다.
if people[left] + people[right] <= limit: #가벼운 사람과 무거운 사람의 무게가 limit이내라면
left += 1 # 왼쪽사람의 위치는 +1
right -= 1 # 오른쪽 사람의 위치는 -1감소
else: # 가벼운 사람과 무거운 사람의 몸무게가 limit초과한다면
right -= 1 # 오른쪽 사람의 우치만 -1감소
cnt += 1 # 1명이 타든 2명이 타튼 보트 1대는 출발
return cnt