반응형
[C] LeetCode 1793. Maximum Score of a Good Subarray
Coding/PS2026. 4. 11. 22:12[C] LeetCode 1793. Maximum Score of a Good Subarray

문제번역0-index 를 사용하는 정수 배열 nums가 주어진다.부분 배열 \((i, j)\)의 score는 \(min(subarray) * (j-i+1)\) 로 정의된다.좋은 부분배열은 k가 i 이상 j 이하일때 이다.좋은 부분배열의 점수의 최대값을 반환해라.접근 방법 및 소스 코드일단 부분 배열에 k가 반드시 들어가야 하니 k부터 시작하는게 좋을 것이다.k를 기준으로 왼쪽과 오른쪽으로 한칸씩 늘려가면서 현재 최대 점수와 비교하면서 최대점수를 늘리는지 줄이는지 찾아야 한다.왼쪽으로 가는것과 오른쪽으로 가는것을 비교해서 더 큰 값을 갖는 쪽으로 일단 늘려본다.늘렸을때 점수가 지금 점수보다 높다면 업데이트를 한다. 이러한 방식으로 양쪽 끝까지 다 탐색해봐야 한다. int maximumScore(int* n..

[C] LeetCode 845. Longest Mountain In Array
Coding/PS2026. 4. 11. 21:16[C] LeetCode 845. Longest Mountain In Array

문제번역arr 배열을 mountain array라고 부르려면 다음 조건을 만족해야 한다.1. 배열의 길이가 3 이상이어야 하고2. 어떤 인덱스 i에 대해서 0번 원소부터 i번 원소까지 단조 증가해야 하며3. i번 인덱스부터 배열의 끝까지 단조 감소해야 한다. 주어진 정수 배열 arr에서 가장 긴 mountain 부분 배열의 길이를 반환하고, 없다면 0을 반환해라.접근 방법과 소스코드처음에는 매 인덱스마다 검사하는 로직을 작성했다. 현재 인덱스 \(i\)에 도착했을때, 포인터 \(l\)은 왼쪽으로 내려가면서 \(l\)부터 \(i\)까지 단조 증가하는지 검사하고,포인터 \(r\)은 오른쪽으로 올라가면서 \(i\)부터 \(r\)까지 단조 감소하는지 검사한다.포인터가 최대한 단조 증가/감소하는 위치까지 내려가게..

[C] LeetCode 204. Count Primes
Coding/PS2026. 4. 5. 18:12[C] LeetCode 204. Count Primes

문제(원문)문제(번역)정수 n이 주어질때, 정수 n보다 작은 소수의 개수를 구해라.접근 방법소수 구하는 문제는 거의 에라토스테네스의 체를 활용하면 된다.에라토스테네스의 체란 2부터 시작해서 각 소수의 배수를 차례대로 지워가면서 소수만 남기는 방식이다.어떤 수 i가 소수이면 i의 배수는 전부 합성수가 되기 때문이다. 보통 \(i^2\) 부터 지우면 이미 처리된 수를 건너 뛰게 되어 더 효율적이다. 해당 문제에서도 에라토스테네스의 체를 활용했다. 메모리 사용량을 더 줄이기 위해 동적할당을 사용해 체에 필요한 리스트를 할당했다. 소스 코드int countPrimes(int n) { if(n

반응형
image