개발 일지
1785. Minimum Elements to Add to Form a Given Sum (주어진 합을 형성하기 위해 더해야 할 최소 요소) 본문
코딩 테스트/LeetCode
1785. Minimum Elements to Add to Form a Given Sum (주어진 합을 형성하기 위해 더해야 할 최소 요소)
포카리tea 2024. 10. 18. 15:10정수 배열 nums와 두 개의 정수 limit 및 goal이 주어집니다. 배열 nums는 abs(nums[i]) <= limit의 흥미로운 속성을 가지고 있습니다.
배열의 합을 goal로 만들기 위해 추가해야 하는 최소 요소 수를 반환합니다. 배열은 abs(nums[i]) <= limit 속성을 유지해야 합니다.
x >= 0이면 abs(x)는 x이고 그렇지 않으면 -x입니다.
예시 1:
입력: nums = [1,-1,1], limit = 3, goal = -4
출력: 2
설명: -2와 -3을 더하면 배열의 합이 1 - 1 + 1 - 2 - 3 = -4가 됩니다.
예시 2:
입력: nums = [1,-10,9,1], limit = 100, goal = 0
출력: 1
조건:
- 1 <= nums.length <= 10^5
- 1 <= limit <= 10^6
- -limit <= nums[i] <= limit
- -10^9 <= goal <= 10^9
정답:
public class Solution {
public int MinElements(int[] nums, int limit, int goal) {
long num = 0;
foreach (var i in nums)
{
num += i;
}
num = Math.Abs(num - goal);
if (num % limit == 0)
{
return (int)(num / limit);
}
else
{
return (int)(num / limit + 1);
}
}
}
해설: nums의 합을 우선적으로 구한 후 nums의 합에 goal을 뺀값을 절대값으로 변경해줍니다.
해당 절대값에 limit를 나눴을 때 나머지가 0이라면 나눈 값을 바로 return해주고 나머지가 0이아니라면 나눈 값에 1을 더해주고 return합니다.
'코딩 테스트 > LeetCode' 카테고리의 다른 글
1629. Slowest Key (가장 느린 키) (1) | 2024.10.21 |
---|---|
1636. Sort Array by Increasing Frequency (빈도 증가에 따른 배열 정렬) (0) | 2024.10.21 |
1732. Find the Highest Altitude (가장 높은 고도를 찾아보세요) (5) | 2024.10.18 |
1738. Find Kth Largest XOR Coordinate Value (K번째로 큰 XOR 좌표 값 찾기) (0) | 2024.10.18 |
1742. Maximum Number of Balls in a Box (상자 안에 있는 공의 최대 개수) (0) | 2024.10.16 |