LeetCode : 1431

Daehwi Kim·2020년 9월 9일
0

LeetCode

목록 보기
16/23

1431. Kids With the Greatest Number of Candies



Problem

Given the array candies and the integer extraCandies, where candies[i] represents the number of candies that the ith kid has.

For each kid check if there is a way to distribute extraCandies among the kids such that he or she can have the greatest number of candies among them. Notice that multiple kids can have the greatest number of candies.


Example

  • 여분의 사탕을 받았을때 각아이들이 가지고있는 캔디와 합친 캔디의 수가 다른 가장많은 아이의 캔디의 수보다 같거나 많은지 여부를 판단하는 문제이다.

Solution


max()함수와 for문으로 풀이

class Solution:
    def kidsWithCandies(self, candies: List[int], extraCandies: int) -> List[bool]:
        max_nums = max(candies)
        result = []
        for i in range(len(candies)):
            if max_nums - (candies[i] + extraCandies) <= 0:
                result.append(True)
            else:
                result.append(False)
        return result

Runtime : 40 ms

  • 가장 많은 캔디의 수를 max()함수로 알아내어 자기가 가진 캔디의 수와 여분의 캔디를 받은 양이 가장많은 캔디의 수보다 같거나 많을때를 True로 판별하여 for문으로 result 리스트에 추가하였다.

List Comprehension을 이용한 Short Coding

class Solution:
    def kidsWithCandies(self, candies: List[int], extraCandies: int) -> List[bool]:
        max_num = max(candies)
        
        return [ (candy + extraCandies) >= max_num for candy in candies ]

Runtime : 36 ms

profile
게으른 개발자

0개의 댓글