배열에서 K번째로 큰 원소 찾기
문제 개요정렬되지 않은 정수 배열에서 k번째로 큰 원소를 찾는 알고리즘 문제입니다. 예를 들어 [3,2,1,5,6,4]에서 k=2일 경우 결과는 5가 됩니다.접근법 1: 최소 힙 활용크기가 k인 최소 힙을 유지하면 효율적으로 해결할 수 있습니다. 힙의 루트는 항상 현재까지 본 원소 중 k번째로 큰 값이 됩니다.class KthElementFinder {
public int findKthLargest(int[] arr, ...
6월 30일 22:32에 게시됨
배열 정렬 및 분할 알고리즘
주어진 문제는 배열을 원위치에서 정렬하는 것으로, 각각의 색상(0, 1, 2)을 순서대로 나열해야 합니다. 이를 위해 삼지분할법(Tripartite Partitioning)을 사용합니다.
다음은 구현 예시입니다:
class Solution {
public:
void sortColors(vector<int>& nums) {
int n = nums.size();
int left = -1, right = n;
for (int i = 0; i ...
6월 27일 20:41에 게시됨
Xorshift 기반 난수 배열 생성과 선형 시간 선택 알고리즘 활용
알고리즘 대회에서 자주 등장하는 난수 배열 생성 방식과 std::nth_element를 활용한 효율적인 문제 해결 기법을 살펴본다. 특히 대용량 데이터에서 순위 기반 쿼리를 처리하는 방법이 핵심이다.
Xorshift RNG 구현
다음은 경량 의사난수 생성기(Pseudo-Random Number Generator)의 한 종류인 xorshift 계열 구현이다. 세 개의 상태 변수를 이용하며, 비트 연산으로 빠르 ...
6월 8일 21:35에 게시됨