[LeetCode / Easy] 1431. Kids With the Greatest Number of Candies (Java)

이하얀·2025년 2월 2일
0

📙 LeetCode

목록 보기
5/13

💬 Info



Problem

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.

예시 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.

예시 3

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


Constraints

  • n == candies.length
  • 2 <= n <= 100
  • 1 <= candies[i] <= 100
  • 1 <= extraCandies <= 50


문제 이해

  • extraCandies를 줄 때, 가장 많은 수의 사탕을 가지고 있을 경우 True를 반환
    • 단, 이 경우는 여러 경우일 수 있음(중복이 된다는 의미)


알고리즘

풀이 시간 : 12분

  • 배열에서 가장 많은 사탕을 가진 아이 찾기(max)
  • candies[i] + extraCandies >= max 조건 만족 시 True 반환
import java.util.*;

class Solution {
    public List<Boolean> kidsWithCandies(int[] candies, int extraCandies) {
        int max = 0;
        for (int candy : candies) {
            max = Math.max(max, candy);
        }

        List<Boolean> result = new ArrayList<>(candies.length);
        for (int candy : candies) {
            result.add(candy + extraCandies >= max);
        }

        return result;
    }
}


결과

profile
언젠가 내 코드로 세상에 기여할 수 있도록, Data Science&BE 개발 기록 노트☘️

0개의 댓글