본문 바로가기

LeetCode

1431. Kids With the Greatest Number of Candies / TypeScript

There are n kids with candies. You are given an integer array candies, where each candies[i] represents the number of candies the ith 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 ith 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]

 

출처 : https://leetcode.com/problems/kids-with-the-greatest-number-of-candies/description/

 

function kidsWithCandies(candies: number[], extraCandies: number): boolean[] {
    let highestNum: number = -Infinity
    const res:boolean[] = []
    for(let i=0; i<candies.length; i++){
        if(candies[i] > highestNum){
            highestNum = candies[i]    
        }
    }
    for(let j=0; j<candies.length; j++){
        if(candies[j]+extraCandies >= highestNum){
            res.push(true)
        }
        else{
            res.push(false)
        }
    }
    return res
};

 

추가 사탕을 받았을 때 가장 많은 사탕을 가질 수 있는지를 판단하는 함수

  • res: 결과를 저장할 Boolean 배열
  • for 루프를 사용하여 각 아이가 가진 사탕의 수를 확인하고, highestNum 변수에 가장 많은 사탕의 수를 저장
  • for 루프를 사용하여 각 아이가 추가 사탕을 받았을 때, 그 사탕의 수(candies[j] + extraCandies)가 가장 많은 사탕의 수(highestNum)보다 크거나 같은지 확인.
  • 조건을 만족하면 res 배열에 true를 추가하고, 그렇지 않으면 false를 추가