728x90
어제에 이어 Greedy 문제였는데 잘 못하는 것임이 확실하다!
Greedy하게 결정하는 방법을 잘 모르겠다. 하지만 해봐야지!
사실 오늘은 조금 cheating을 했다.😏
구명 보트를 가장 적게 사용하면서 승객을 옮겨야 하는데 생각한 알고리즘이
제일 무거운 사람을 뽑아서 그 사람이랑 가장 많이 태워서 보내는 것이었는데 너무 복잡하게 생각했다.
그저 무거운 사람이랑 같이 갈 수 있는 제일 가벼운 사람이 있으면 보내고 아니면 그냥 무거운 사람만 보내는 방법이었다.
이렇게 간단하게 생각하는 방법을 좀 연습해야겠다....
from collections import deque
def solution(people, limit):
answer = 0
people.sort()
people = deque(people)
while people:
person = people.pop()
try:
light = people.popleft()
if person + light > limit:
people.appendleft(light)
answer += 1
except:
answer += 1
return answer
728x90
'코딩테스트' 카테고리의 다른 글
LeetCode - 1476. Subrectangle Queries (2) | 2024.06.14 |
---|---|
LeetCode - 1641. Count Sorted Vowel Strings (1) | 2024.06.07 |
LeetCode - 2415. Reverse Odd Levels of Binary Tree (2) | 2024.06.03 |
LeetCode - 1302.All Paths from Source to Target (0) | 2024.06.02 |
LeetCode - 1302. Deepest Leaves Sum (0) | 2024.06.01 |