FickleBoBo

[백준] 2433번 - The Sound of Silence [Java][C++]

문제 링크 1. 문제 풀이 단조 덱을 활용한 슬라이딩 윈도우와 우선순위 큐 두 가지 방식 모두 적용 가능한 문제로 구간의 최솟값과 최댓값이 모두 필요한데 이를 각각 단조 증가 덱, 단조 감소 덱 또는 최소힙, 최대힙으로 관리하며 최댓값과 최솟값의 차를 $c$ 와 비교하는 방식으로 해결했다. 2. 코드 1. 덱을 이용한 구간 최댓값 트릭 ...

[백준] 11003번 - 최솟값 찾기 [Java][C++]

문제 링크 1. 문제 풀이 단조 덱을 활용한 슬라이딩 윈도우의 대표적인 문제로 인덱스를 저장하는 단조 덱을 활용하면 해결할 수 있다. 주어진 수열의 인덱스를 저장할 단조 덱을 선언한 후 수열을 순회하며 단조 덱의 맨 앞 원소가 구간의 최솟값인 인덱스가 되도록 유지했다. 슬라이딩 윈도우 과정에서 단조 덱의 최솟값 인덱스가 구간을 벗어나면 단조 ...

Preview Image

[알고리즘] 덱을 이용한 구간 최댓값 트릭 (Sliding Window Maximum)

1. 덱을 이용한 구간 최댓값 트릭 덱을 이용한 구간 최댓값 트릭(Sliding Window Maximum)은 배열이나 리스트와 같은 데이터 구조에서 연속된 부분 배열의 최솟값이나 최댓값을 효율적으로 계산할 수 있는 일종의 테크닉이다. 구간 합을 구할 때는 윈도우에서 나가는 정보와 들어오는 정보만 기존의 구간 합에서 갱신해주면 됐지만 최솟값이나 최댓...

Preview Image

[알고리즘] 슬라이딩 윈도우 (Sliding Window)

1. 슬라이딩 윈도우 슬라이딩 윈도우(Sliding Window)는 배열이나 리스트와 같은 데이터 구조에서 연속된 부분 배열의 합이나 애너그램(Anagram) 등을 효율적으로 계산하는 데 사용되는 일종의 테크닉이다. 주로 고정된 크기의 윈도우(Window)를 활용하여 데이터를 처리하며 이 과정에서 반복적인 계산을 줄여 시간복잡도를 낮출 수 있다. ...