• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

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

21.04.01 22:18 작성 조회수 144

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

안녕하세요^^

잘 하신 코드입니다. 

0

류시명님의 프로필

류시명

질문자

2021.04.02

감사합니다~!