⚡문제정보
3개 이상 일정한 값이 나오는 경우 카운트를 올려주면 되는데
까다로운 점이 1,2,3,4같은 경우엔 [1,2,3,4]도 같이 카운트를 해줘야합니다.
dp 유형 문제인걸 알고봐도 아직 능지가 부족해서 다른 분의 풀이를 참고했습니다.
🔍접근방법
[i-2] - [i-1] 과 [i-1] - [i]의 값이 같으면 문제의 요구조건에 맞는 케이스를 찾을 수 있을 것이다.
🔍참고한 풀이
var numberOfArithmeticSlices = function(nums) {
let dp = new Array(nums.length).fill(0)
let answer = 0
for(i=2 ; i<nums.length ; i++) {
if(nums[i-2] - nums[i-1] == nums[i-1] - nums[i]) {
dp[i] = 1 + dp[i - 1];
answer += dp[i];
}
}
return answer
};
nums.length 만큼의 dp 배열을 만들어줍니다.
if케이스에 걸렸을때 dp[i]에 1 + dp[i-1]값을 넣어주면
최초로 매칭되는 케이스일경우 -> 1 + 0
[1,2,3,4]같이 답이 3나와야하는 경우
이전 dp에서 1이 할당되었으니 1+1 -> 2
발상이 대단하네요... 배웠읍니다
반응형
'leetcode' 카테고리의 다른 글
2442. Count Number of Distinct Integers After Reverse Operations Javascript (0) | 2023.01.21 |
---|---|
2491. Divide Players Into Teams of Equal Skill Javascript (0) | 2023.01.21 |
121 and 122. Best Time to Buy and Sell Stock II (0) | 2023.01.17 |
561. Array Partition Javascript (0) | 2023.01.16 |
452. Minimum Number of Arrows to Burst Balloons Javascript (1) | 2023.01.16 |