algorithm 2

1250. Check If It Is a Good Array - Streak 5

이 문제는 결국 양수와 음수의 조합으로 나타내진다.이를 모듈러 연산으로 나타낼 수 없을까? 여기서 확장 유클리드 호제법이 적용 가능해진다.gcd = 1인 조합이 하나라도 있으면 True이다.근데 우리 문제는, 다음과 같은 형태이다.이걸 확장 유클리드 호제법의 형태로 바꿀 수 없을까?둘을 더하면, 최대공약수는 약수로 남기고, 나머지는 더한 효과가 된다.즉, 둘을 더해도 최대공약수는 무조건 남는다 최대공약수는 이 문제에서 지워야 하는 대상이므로,전체의 최대공약수가 1이면 True이고, 전체의 최대공약수가 1이 아니면 False이다.class Solution { public boolean isGoodArray(int[] nums) { int now = nums[0]; for(in..

PS/LeetCode 2025.09.18

1000. Minimum Cost to Merge Stones - Streak 4

비슷한 문제를 풀어본 적이 있다.https://www.acmicpc.net/problem/11066 이 문제와 다른 것은 뭘까?파일 합치기는 반드시 바로 옆칸 1개와 합치기 때문에, 순차대로 순회하기가 쉽다.이 문제는 연속된 k칸끼리 합쳐야 하기 때문에, 추가적인 처리가 필요하다.n%(k-1)==1 이 아니면 -1을 반환해야 한다.연속된 k칸끼리의 합치는 방법을 생각해야 한다.파일 합치기의 경우DP[i][j] = DP[i][k] + DP[k+1][j] + psum[j] - psum[i-1]이 문제는?연속된 k칸을 합쳐야 한다. 점화식 자체가 달라지는건가?dp[i][p] + dp[p][q] + ...k가 커지면 for문의 깊이도 그만큼 커진다.k가 2인 경우를 제외하고,내부가 len % (k-1) == 1..

PS/LeetCode 2025.09.17