https://leetcode.com/problems/boats-to-save-people/
보트에 사람을 실을 수 있고(최대 두 명) 무게는 limit 까지만
최소한으로 움직이는 횟수를 구하는 문제
내 풀이
정렬 + 투 포인터를 활용해서 풀었다.
class Solution:
def numRescueBoats(self, people: List[int], limit: int) -> int:
start : int = 0
end : int = len(people) - 1
people.sort()
answer = 0
while start<end:
if people[start] + people[end] <= limit:
start += 1
end -= 1
else:
end -= 1
answer += 1
if start == end:
answer += 1
return answer
solution 코드
똑같은 코드인데, start와 end가 같을 경우에는 어차피 limit를 넘어가니 아래 코드와 같이 처리해도 상관없을 것 같다.
class Solution(object):
def numRescueBoats(self, people, limit):
people.sort()
i, j = 0, len(people) - 1
ans = 0
while i <= j:
ans += 1
if people[i] + people[j] <= limit:
i += 1
j -= 1
return ans
'Programming > LeetCode' 카테고리의 다른 글
[LeetCode] Valid Parentheses (0) | 2022.03.25 |
---|---|
[LeetCode] Swap Nodes in Pairs (0) | 2022.03.24 |
[LeetCode] Add Two Numbers (0) | 2022.03.23 |
[LeetCode] Reverse Linked List (0) | 2022.03.23 |
[LeetCode] Broken Calculator (0) | 2022.03.23 |
댓글