1413. Kids with the greatest number of candies

Numeric_combo·2024년 10월 27일

There are n kids with candies. You are given an integer array candies, where each candies[i] represents the number of candies the ithi^{th} kid has, and an integer extraCandies, denoting the number of extra candies that you have.

Return a boolean array result of length n, where result[i] is true if, after giving the ithi^{th} kid all the extraCandies, they will have the greatest number of candies among all the kids, or false otherwise.

Note that multiple kids can have the greatest number of candies.

Example 1:

Input: candies = [2,3,5,1,3], extraCandies = 3
Output: [true,true,true,false,true]
Explanation: If you give all extraCandies to:

  • Kid 1, they will have 2 + 3 = 5 candies, which is the greatest among the kids.
  • Kid 2, they will have 3 + 3 = 6 candies, which is the greatest among the kids.
  • Kid 3, they will have 5 + 3 = 8 candies, which is the greatest among the kids.
  • Kid 4, they will have 1 + 3 = 4 candies, which is not the greatest among the kids.
  • Kid 5, they will have 3 + 3 = 6 candies, which is the greatest among the kids.
    Example 2:

Input: candies = [4,2,1,1,2], extraCandies = 1
Output: [true,false,false,false,false]
Explanation: There is only 1 extra candy.
Kid 1 will always have the greatest number of candies, even if a different kid is given the extra candy.
Example 3:

Input: candies = [12,1,12], extraCandies = 10
Output: [true,false,true]

풀이

class Solution:
    def kidsWithCandies(self, candies: List[int], extraCandies: int) -> List[bool]:
        output = []
        max_candies = max(candies)

        for i in candies:
            if i + extraCandies >= max_candies:
                output.append(True)
            else:
                output.append(False)
        
        return output

모범답안이랑 굉장히 근접하게 써서 좋았다. 다만 처음엔 루프 안에서 max(candies)를 적었는데 그렇게하면 매번 candies라는 리스트 안에서 재계산을 하는 수고가 들기 때문에 처음부터 max_candies라는 변수를 만들어 미리 저장해놓고 하는 방식으로 하는 것이 효율적인 걸 알게 되어 저렇게 수정했다.

profile
덕질기록용

0개의 댓글