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.
/*
[문제]
- n명의 어린이가 캔디를 가지고 있다.
- 각 캔디[i] 는 i 번째 어린이가 몇 개의 캔디를 갖고 있는지 나타낸다.
- extraCandies 값은 내가 가진 캔디의 총량을 나타낸다.
- n 개의 길이를 가진 boolean 배열 result 를 리턴하라
- i번째 어린이에게 extraCandies 만큼을 주고 난뒤,
- 모든 어린이 중에서 가장 많은 캔디를 가지고 있으면 result[i]는 참이다.
- 참고로 여러명의 어린이가 가장 많은 캔디를 가질 수 있다.
=> 그러니까, 모든 어린이에게 extraCandies 를 다 주는게 아니고,
준다는 가정 하에 그 어린이가 다른 어린이보다 많은 갯수의 캔디를 가질 수 있느냐 없느냐를 보는 것.
*/
var kidsWithCandies = function(candies, extraCandies) {
// 방법 1.
// 반복문 돌며 각각 더하고, 나머지 값과 비교하는 것.
// O(n)^2 의 시간 복잡도를 갖는다.
// 방법 2.
// 전체 배열에서 extraCandies 를 받기 전 최대값을 변수에 저장
// 배열을 돌며 extraCandies 를 더하고 그 값보다 크면 true, 아니라면 false
const max = Math.max(...candies);
const result = candies.map((child) => {
return child + extraCandies >= max;
});
return result;
};
추가된 풀이
var kidsWithCandies = function(candies, extraCandies) {
const maxCandy = Math.max(...candies);
return candies.map(candy => extraCandies+candy >= maxCandy)
};
- 흠 여전히 똑같은 생각을 하는군...
'Algorithm & 자료구조 > 알고리즘 w.JavaScript' 카테고리의 다른 글
[Leetcode] 345. Reverse Vowels of a String (0) | 2024.01.03 |
---|---|
[Leetcode] 605. Can Place Flowers (0) | 2023.12.31 |
[Leetcode] 1071. Greatest Common Divisor of Strings (0) | 2023.12.28 |
[Leetcode] 1768.Merge Strings Alternately (2) | 2023.12.18 |
[알고리즘 JS] Sliding window - 중복이 없는 가장 긴 문자열의 길이 찾기 (0) | 2023.03.24 |