본문 바로가기
Programming/LeetCode

[LeetCode] Boats to Save People

by 데이터현 2022. 3. 24.

https://leetcode.com/problems/boats-to-save-people/

 

Boats to Save People - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

보트에 사람을 실을 수 있고(최대 두 명) 무게는 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

댓글