본문 바로가기
반응형

Problem Solving23

[Leetcode] 2302. Count Subarrays With Score Less Than K 어려운 문제였다.하루 종일 고민해도, 힌트를 다 보고도 안 풀려서 결국 답을 봤다.그리고 억울해서 잠을 못 잤다😂다음 달 언젠가 바쁘게 살다가 까먹을 때 쯤 다시 한 번 풀어봐야겠다.문제 설명 - Count Subarrays with Score Less Than K어떤 배열의 score(점수) 는 다음과 같이 정의된다:score = (배열의 모든 원소의 합) × (배열의 길이) 예를 들어 [1, 2, 3]의 점수는 (1 + 2 + 3) × 3 = 6 × 3 = 18이다.이 문제에서는 양의 정수 배열 nums와 정수 k가 주어진다.이때, 점수가 k보다 작은 비어 있지 않은 부분 배열(subarray) 의 개수를 구하는 것이 목표다. 예시예제 1Input: nums = [2,1,4,3,5], k = 10O.. 2025. 5. 1.
[Leetcode] 3392. Count Subarrays of Length Three With a Condition 문제 설명 - Special Subarrays of Length 3정수 배열 nums가 주어진다.이 배열 안에서 길이가 정확히 3인 부분 배열(subarray) 중 다음 조건을 만족하는 경우를 세야 한다:첫 번째 원소와 세 번째 원소의 합이 두 번째 원소의 절반과 정확히 같다.목표는 조건을 만족하는 부분 배열의 개수를 반환하는 것이다.문제를 풀면서 놓치지 않아야 할 부분은 부동소수점이다. 예시예제 1Input: nums = [1, 2, 1, 4, 1]Output: 1가능한 3개 길이 부분 배열은:[1,2,1] → 1+1 ≠ 2/2[2,1,4] → 2+4 ≠ 1/2[1,4,1] → 1+1 == 4/2 (조건 만족)[4,1,] (불가능, 길이 2)따라서 조건을 만족하는 부분 배열은 [1,4,1] 하나뿐이기에.. 2025. 4. 27.
[Leetcode] 38. Count and Say 문제 설명 - Count and SayCount-and-Say 수열은 숫자 문자열로 이루어진 수열이다.이 수열은 다음과 같은 재귀적 정의를 따른다:countAndSay(1) = "1" (기본 케이스)countAndSay(n)은 countAndSay(n-1)의 런-렝스 인코딩(Run-Length Encoding) 결과로 정의된다. 런-렝스 인코딩이란?연속해서 같은 문자가 나올 경우, 그 문자의 개수와 문자를 이어붙이는 방식이다.예를 들어, 문자열 "3322251"에 대해,"33" → "23""222" → "32""5" → "15""1" → "11"결과적으로 "23321511"이 된다. 조건 정리1 ≤ n ≤ 30문제는 메모리나 성능에 크게 부담이 없으므로 단순 반복(iterative)으로 풀 수 있다. 풀.. 2025. 4. 27.
[Leetcode] 2179. Count Good Triplets in an Array 문제는 여기서 확인할 수 있다.꽤 어려운 문제였고 고백하자면 Hint 3개를 다 보고 나서야 풀 수 있었다.해외 취업의 길은 멀고도 험하다.문제 설명 - Count Good Triplets in Two Arrays두 개의 0-indexed 배열 nums1, nums2가 주어진다.이 두 배열은 모두 [0, 1, ..., n-1]의 순열이며, 길이는 n이다.여기서 좋은 삼중 조합(good triplet) 은 다음 조건을 만족하는 (x, y, z) 세 값의 조합이다:x, y, z는 모두 다른 값이며x, y, z의 값 순서대로,nums1에서의 위치: pos1[x] nums2에서의 위치: pos2[x] 즉, 두 배열 모두에서 x, y, z가 증가하는 순서로 등장해야 한다.목표는 가능한 모든 good triplet.. 2025. 4. 17.
[Leetcode] 3396. Minimum Number of Operations to Make Elements in Array Distinct 문제 설명 - Minimum Operations to Make Array Distinct정수 배열 nums가 주어진다.이 배열의 모든 원소가 서로 다른 값이 되도록 만들고 싶다.이를 위해 다음과 같은 연산을 아무 횟수나 사용할 수 있다:배열의 앞에서 3개의 원소를 제거한다.만약 배열에 남은 원소가 3개보다 적다면, 전부 제거한다.목표는 중복 없는 배열을 만들기 위한 최소 연산 횟수를 구하는 것이다.참고로, 빈 배열은 중복이 없는 배열로 간주한다. 예시예제 1Input: nums = [1, 2, 3, 4, 2, 3, 3, 5, 7]Output: 2연산 1회: 앞의 3개 제거 → [4, 2, 3, 3, 5, 7]연산 2회: 다시 3개 제거 → [3, 5, 7]남은 배열은 중복이 없다 → 연산 횟수는 2예제 .. 2025. 4. 17.
[Leetcode] 2064. Minimized Maximum of Products Distributed to Any Store 문제 설명문제를 요약하면 Minimize Maximum of Products per Store 라고 할 수 있다.n개의 전문 소매점이 있고, m개의 서로 다른 상품 종류가 주어진다.각 상품 종류는 quantities 배열로 주어지며, quantities[i]는 i번째 상품 종류의 수량을 의미한다.이 상품들을 다음 규칙에 따라 매장에 분배해야 한다:하나의 매장은 한 종류의 상품만 받을 수 있다.하나의 상품 종류는 여러 매장에 나눠줄 수 있다.어떤 매장은 상품을 아예 안 받아도 된다.분배가 완료된 뒤, 가장 많이 받은 매장의 상품 수(x) 를 최소화하는 것이 목표다.즉, 모든 매장이 받은 상품 수 중 최댓값을 최소로 만들고자 한다. 예시예제 1Input: n = 6, quantities = [11, 6]Ou.. 2025. 4. 13.
반응형