Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Tags
- 프로젝트캠프
- React
- 유데미
- 수코딩
- tanstack query
- 공식문서
- 스나이퍼팩토리
- 리액트프로젝트
- frontend
- Server State
- sucoding
- STATE
- 프론트엔드
- 상태 관리 라이브러리
- 웅진씽크빅
- React Query
- 개발
- TypeScript
- 프론트엔드 개발
Archives
- Today
- Total
yunicornlab
백준 21921번 블로그 JavaScript 풀이 [투포인터] 본문
반응형
백준 21921번 블로그 문제를 자바스크립트로 투포인터 알고리즘을 이용해서 풀어보았다.
https://www.acmicpc.net/problem/21921
let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split('\n');
// 총 일수 N, 계산하고자 하는 기간 X일
let [n, x] = input[0].split(' ').map(Number);
let visitors = input[1].split(' ').map(Number);
// 최대 방문자 수
let maxVisit = 0;
// 최대 방문자 수를 달성한 기간 수
let count = 0;
// 투포인터를 위한 start, end, 현재 방문자수의 합 설정
let start = 0;
let end = start + x - 1;
let sumVisit = 0;
for (let i=start; i<=end; i++) {
sumVisit += visitors[i]
}
while (end < n) {
// 현재 방문자수 < 최대 방문자수 : pass
// 현재 방문자수 = 최대 방문자수 : count++
// 현재 방문자수 > 최대 방문자수 : 최대방문자수 갱신, count = 1
if (maxVisit == sumVisit) count += 1;
else if (maxVisit < sumVisit) {
maxVisit = sumVisit;
count = 1
}
sumVisit -= visitors[start];
start++;
end++;
sumVisit += visitors[end];
}
// 결과 출력
if (maxVisit == 0) console.log("SAD")
else {
console.log(maxVisit)
console.log(count)
}
반응형
'Coding Test > Practice' 카테고리의 다른 글
백준 1707번 이분 그래프 JavaScript 풀이 [BFS] (0) | 2024.07.26 |
---|---|
백준 7562번 나이트의 이동 풀이 [BFS] (0) | 2024.07.26 |
백준 11441번 합 구하기 JavaScript 풀이 [누적합] (0) | 2024.07.21 |
백준 1697번 숨바꼭질 JavaScript 풀이 [BFS] (0) | 2024.07.21 |
백준 2606번 바이러스 JavaScript 풀이 [DFS] (0) | 2024.07.21 |