일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 스프링 프레임워크
- DP
- C++
- 벤쿠버
- dfs
- 프로그래밍언어론
- 모두를 위한 딥러닝
- 백준
- 프로그래머스
- C/C++
- Spring Framework
- 머신러닝
- 딥러닝
- STL
- 라인플러스
- Python
- 스타벅스
- 알고리즘
- 파이썬
- Java
- 백트래킹
- 릿코드
- jvm
- leetcode
- 다이나믹프로그래밍
- 시애틀
- BFS
- binary search
- 라인
- spring
Archives
- Today
- Total
케이스윔의 개발 블로그
[Leetcode] 1431. Kids With the Greatest Number of Candies 본문
문제 정의
캔디를 가지고 있는 n개의 아이들이 있다. candies[i] 는 i번째 아이가 가지고 있는 캔디의 숫자이고, extraCandies 는 당신이 가지고 있는 캔디의 수다.
i번째 아이에게 extraCandies를 전부 다 준다고 했을 때, 그 아이가 모든 아이 중 가장 많은 캔디를 가지고 있는 것인지 result[i] 에 true/false를 담은 array를 반환하라.
https://leetcode.com/problems/kids-with-the-greatest-number-of-candies/
풀이
역시 easy 문제ㅠ 오랜만에 푸는데 순간 sort 해야하는줄 알고 당황했는데 가장 큰값만 알고 있으면 candies[i] + extrasCandies 값이랑 max 값을 비교해주면 true/false 값을 판단할 수 있다.
와 근데 다른 풀이보니까 Stream 으로 엄청 간단하게 풀었네.. 이렇게 좀 풀어봐야겠다.
코드
class Solution {
public List<Boolean> kidsWithCandies(int[] candies, int extraCandies) {
int max = 0;
for (int i=0; i<candies.length; i++) {
if (max < candies[i]) {
max = candies[i];
}
}
List<Boolean> result = new ArrayList();
for (int i=0; i<candies.length; i++) {
if (candies[i] + extraCandies >= max) {
result.add(true);
} else {
result.add(false);
}
}
return result;
}
}
'Algorithm' 카테고리의 다른 글
[Leetcode] 1768. Merge Strings Alternately (0) | 2023.04.18 |
---|---|
[Leetcode] 576. Out of Boundary Paths (0) | 2022.07.16 |
[Leetcode] 102. Binary Tree Level Order Traversal (0) | 2022.07.13 |
[Leetcode] 199. Binary Tree Right Side View (0) | 2022.07.12 |
[Leetcode] 746. Min Cost Climbing Stairs (0) | 2022.07.10 |
Comments