인프런 커뮤니티 질문&답변

jjjuun님의 프로필 이미지
jjjuun

작성한 질문수

자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)

5. 최대 매출(Sliding Window)

최대 매출 코드 질문 드립니다!

작성

·

172

0

const maximumsales = (n,arr=> {    

let answer;    

let p1=p2=sum=0;    

let max=Number.MIN_SAFE_INTEGER

   

for(p1=0p1<arr.lengthp1++){        

sum+=arr[p1];        

if(p1>2)sum-=arr[p2++]                

if(sum>max){            

max=sum;            

answer=max;       

 }    }    

return answer;

}

let a = [12,15,11,20,25,10,20,19,13,15];

console.log(maximumsales(3,a));

안녕하세요 선생님! 항상 수업 잘 듣고 있습니다!

제 코드 좀 봐주실 수 있을까요?

그리고 if 문을 연속해서 썼는데 괜찮은건지 잘 모르겠어요. 숫자를 여러번 바꿔보았는데 답은 잘 나오긴 하더라구요 ..

그리고 항상 문제의 코드를 짤 때 어렵고 복잡한 문법들은? 되도록 지양하면서 기본적인 문법으로 쉽게 짜려고 하는데요. 이게 문제가 될까요?

또 제가 어디가 부족한지 짚어주시면 정말 감사하겠습니다!  

답변 1

2

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

위 코드은 기간이 3일로 고정된 코드입니다.

console.log(maximumsales(5,a));

로 바꿔도 3일간의 기간으로만 구할 겁니다.

코드는 어려운 문법을 지양하고 쉬운 문법으로 가독성이 좋게, 그러면서도 효율성(시간복잡도)이 좋은 코드를 짜는게 맞습니다. 쉬운 문법을 이용해 어려운 문제를 해결한다면 진짜 실력이 좋은 사람이죠.

jjjuun님의 프로필 이미지
jjjuun

작성한 질문수

질문하기