[백준] 21921번: 블로그 - Java

이다혜·3일 전
0

백준

목록 보기
40/40

📎 문제 출처


https://www.acmicpc.net/problem/21921

📌 문제 설명


❓ 풀이 방법


처음 시도했던 방법은 이중 for문을 사용하여 X일 동안의 누적 방문자 수를 구하고 HashMap에 저장하여 최대 방문자가 방문한 기간의 수를 구했다. 하지만 이 방법은 시간초과로 실패했다.

그래서 연속합을 구할 때 사용하는 알고리즘 중 슬라이딩 윈도우를 사용했다.
슬라이딩 윈도우는 배열이나 리스트와 같은 데이터 구조를 순회하면서 특정 구간(윈도우)의 요소를 효율적으로 처리하는 데 사용되는 알고리즘이다.

첫번째 구간의 합을 미리 구해 놓고 윈도우를 오른쪽으로 한 칸씩 이동하면서 윈도우의 시작 값은 빼고 끝 값을 더해주는 방법이다.

📌 Code



0개의 댓글