작성
·
166
0
영상 안 보고 풀어봤는데 while문 하나로만 풀었습니다. 부탁드려요
// N일 동안 매출기록을 주고 연속된 K일 동안의 최대 매출액이 얼마인지 구하라.
function solution(n = 0, k = 0, arr = []) {
let answer = 0;
let left = 0;
let right = 0;
let sum = 0;
while (right < n) {
// 0~k-1 까지 right로만 움직임.
if (right < k) {
sum += arr[right++];
answer = sum;
} else if (right >= k) {
sum -= arr[left++];
sum += arr[right++];
if (sum > answer) answer = sum;
}
}
return answer;
}
console.log(solution(10, 3, [12, 15, 11, 20, 25, 10, 20, 19, 13, 15])); // 56
// 11 20 25 => 56
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
“영상 안 보고 풀어봤는데 while문 하나로만 풀었습니다. 부탁드립니다.“라고 말씀해 주신 부분을 토대로, 자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비) 과정 내의 유사한 문제에 대해 이미 제공된 답변을 찾아보았습니다.
while문 사용 질문에서는 유사한 문제에 대한 투 포인터 방식을 사용한 풀이를 공유하고 있으며, 강사님의 답변을 통해 해당 코드에 대한 피드백을 확인할 수 있습니다.
제시하신 코드와 비슷한 접근 방식을 사용한 다른 학습자의 코드는 주로 “투 포인터(Two Pointer)” 또는 “슬라이딩 윈도우(Sliding Window)“를 활용하여, 연속된 K일 동안의 최대 매출액을 효율적으로 계산하는 알고리즘 문제입니다. while
반복문과 두 개의 포인터(left
, right
)를 이용해 배열을 순회하며 문제를 해결하는 방식은 많이 쓰이는 패턴 중 하나입니다.
답변한 링크를 통해 유사한 질문과 답변을 확인해보시면 유용한 피드백과 팁을 얻으실 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.