from collections import deque
from heapq import heappush, heappop, heapify
def solution(people, limit):
answer = 0
heap = sorted(people)
q = deque()
for i in range(len(people)):
q.append(heap[i])
#이거 한 4줄 한 줄 가능 q = deque(sorted(people))
while True:
if(len(q) == 1):
answer += 1
break
elif(len(q) == 0):
break
if(q[0]+ (temp:=q.pop()) > limit ):
print(temp)
answer += 1
else:
print(q.popleft())
answer += 1
return answer
문제를 풀 때 좌측 우측에서 동시에 접근하기 위해 덱을 사용했다. 하지만 투포인터라는 기법을 사용해서도 접근이 가능하다!! 대박이다
인덱스를 직접 저장하는 방법 기억하기 메모
투포인터 알고리즘이란,
두 개의 점 위치를 기록하며 처리를 해야할 때
cf) 슬라이딩 윈도우 -> 구간의 길이를 일정하게 둔 채 구간을 훑으며 지나감
heap = sorted(people)
q = deque()
for i in range(len(people)):
q.append(heap[i])
q = deque(sorted(people))
위의 코드 한줄로 줄이기 가능하다!