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

류시명님의 프로필 이미지

작성한 질문수

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

3. 연속부분수열1(Two Pointers Algorithm)

while문 하나만 사용해서 구현해보았는데 검수 부탁드립니다!

21.04.01 22:18 작성

·

209

1

<html>

<head>
<meta charset="UTF-8">
<title>출력결과</title>
</head>

<body>
<script>
function solution(m, arr) {
let answer = 0;
let sum = 0;
let li = 0;
let ri = 0;

while (true) {

if (sum < m) {
sum += arr[ri];
ri++;
} else {
sum -= arr[li];
li++;
}
if (sum === m) {
answer++;
}
// ri가 arr.length 이상이고, sum이 m보다 작아지면 반복문 종료
if (ri >= arr.length && sum < m) break;
}
/**/

return answer;
}

console.log(solution(6, [1, 2, 1, 3, 1, 1, 1, 2]));
console.log(solution(6, [1, 1, 1, 2, 4]));
console.log(solution(2, [1, 1, 1]));
</script>
</body>

</html>

안녕하세요, 선생님! 강의 잘 듣고 있습니다.

while문 하나만 이용하여 O(n)으로 구현해보았는데 

오류가 있는지 확인해주시면 감사드리겠습니다!

답변 2

1

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

2021. 04. 02. 20:22

안녕하세요^^

잘 하신 코드입니다. 

0

류시명님의 프로필 이미지
류시명
질문자

2021. 04. 02. 22:01

감사합니다~!