[C] LeetCode 713. Subarray Product Less Than KCoding/PS2026. 4. 17. 23:38
Table of Contents
반응형

문제

번역
nums 라는 정수 배열과 정수 k가 주어졌을때, 부분배열의 모든 원소의 곱이 k보다 작은 부분배열의 개수를 반환해라.
접근 방법 및 소스 코드
투 포인터를 사용하면 된다.
i를 0부터 numsSize-1까지 반복하면서 i에 해당하는 인덱스를 곱셈의 시작점으로 쓴다.
포인터 j를 한칸씩 뒤로 가면서 곱해본다. 이때, 곱한 값이 k보다 작은지 매번 검사하면서 곱한다.
그래서 가능한 가장 큰 j를 구한 뒤, counter에 해당 부분배열 길이 만큼 다시 더해준다.
그 다음 i를 한칸 밀고, 기존에 곱했던 값에서 배열의 i번째의 값만큼 다시 나눠준다.
그리고 j를 또 한칸씩 뒤로 가면서 곱해본다... 이를 끝까지 반복한다.
int numSubarrayProductLessThanK(int* nums, int numsSize, int k) {
int j=0,prod=1,ans=0;
for(int i = 0 ; i < numsSize ; i++) {
if(j < i) {
j = i;
prod = 1;
}
while(j < numsSize && prod * nums[j] < k) prod *= nums[j++];
if(i < j) {
ans += j - i;
prod /= nums[i];
}
}
return ans;
}

왜인지는 모르겠지만 문제해결 수업이 있는 날 내 블로그 방문자가 생각보다 높다..
반응형
'Coding > PS' 카테고리의 다른 글
| [C] LeetCode 42. Trapping Rain Water (0) | 2026.04.18 |
|---|---|
| [C] LeetCode 11. Container With Most Water (0) | 2026.04.18 |
| [C] LeetCode 84. Largest Rectangle in Histogram (0) | 2026.04.16 |
| [C] LeetCode 1712. Ways to Split Array Into Three Subarrays (0) | 2026.04.16 |
| [C] LeetCode 1793. Maximum Score of a Good Subarray (0) | 2026.04.11 |
@현주씌 :: 현주.로그
소프트웨어학과 현주씌의 일상을 담는 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!