상세 컨텐츠

본문 제목

1431. Kids With the Greatest Number of Candies

LeetCode

by 10002s 2023. 11. 1. 00:11

본문

Kids With the Greatest Number of Candies - LeetCode

 

주어진 배열 candies는 n명의 아이들이 가진 사탕의 갯수를 나타내며, extraCandies는 추가로 가지고 있는 사탕의 갯수를 나타냅니다. 모든 아이들에게 extraCandies를 나누어 주고, 그 결과로 각 아이가 가진 사탕의 수가 가장 많은 아이가 누구인지를 판단하려고 합니다. 결과는 true 또는 false 값을 갖는 길이 n의 부울 배열 result로 반환되어야 합니다. result[i]는 i번째 아이에게 extraCandies를 주었을 때, 해당 아이가 모든 아이 중에서 가장 많은 사탕을 가지게 된다면 true, 그렇지 않다면 false입니다.

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]
문제 요약:

각 아이에게 extraCandies를 주었을 때, 그 아이가 가진 사탕의 수가 모든 아이 중에서 가장 많은지를 판단하여 결과를 부울 배열에 저장하는 문제입니다.

풀이 과정:
  1. 주어진 문제를 해결하기 위한 간단한 방법은 다음과 같습니다.
    우선 배열 candies에서 최대 사탕 갯수를 찾습니다. 이를 위해 배열을 순회하면서 최대 값을 찾습니다.
  2. 각 아이에게 extraCandies를 주고, 아이의 사탕 수가 최대와 같거나 더 큰지를 확인합니다. 이를 위해 배열을 순회하면서 candies[i] + extraCandies >= maxCandies를 판단하여 결과를 부울 배열 result에 저장합니다.

 

class Solution {
    public List<Boolean> kidsWithCandies(int[] candies, int extraCandies) {
        int maxC = 0;

        for(int candie : candies){
            maxC = Math.max(maxC, candie);
        }
                
        ArrayList<Boolean> retVal = new ArrayList<>();
        for(int num : candies){
            retVal.add(num + extraCandies >= maxC);
        }
        
        return retVal;
    }
}

 

 

반응형

'LeetCode' 카테고리의 다른 글

1679. Max Number of K-Sum Pairs  (0) 2023.11.02
11. Container With Most Water  (0) 2023.11.02
443. String Compression  (0) 2023.10.30
334. Increasing Triplet Subsequence  (0) 2023.10.30
547. Number of Provinces  (0) 2023.10.30

관련글 더보기