There are n kids with candies. You are given an integer array candies, where each candies[i] represents the number of candies the 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 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:
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라는 변수를 만들어 미리 저장해놓고 하는 방식으로 하는 것이 효율적인 걸 알게 되어 저렇게 수정했다.