DEV Community

Lakshya Tyagi
Lakshya Tyagi

Posted on

JavaScript Code Daily Challenge #8

About

This is a series of JavaScript Code Daily Challenge. Each day I show a few solutions written in JavaScript. The questions are from coding practice/contest sites such as HackerRank, LeetCode, Codeforces, Atcoder and etc.

Sub-array Division
https://www.hackerrank.com/challenges/the-birthday-bar/problem

'use strict';

const fs = require('fs');

process.stdin.resume();
process.stdin.setEncoding('utf-8');

let inputString = '';
let currentLine = 0;

process.stdin.on('data', function(inputStdin) {
    inputString += inputStdin;
});

process.stdin.on('end', function() {
    inputString = inputString.split('\n');

    main();
});

function readLine() {
    return inputString[currentLine++];
}
Enter fullscreen mode Exit fullscreen mode

Complete the birthday function in comment.

function birthday(s, d, m) {


}
Enter fullscreen mode Exit fullscreen mode
function main() {
    const ws = fs.createWriteStream(process.env.OUTPUT_PATH);

    const n = parseInt(readLine().trim(), 10);

    const s = readLine().replace(/\s+$/g, '').split(' ').map(sTemp => parseInt(sTemp, 10));

    const dm = readLine().replace(/\s+$/g, '').split(' ');

    const d = parseInt(dm[0], 10);

    const m = parseInt(dm[1], 10);

    const result = birthday(s, d, m);

    ws.write(result + '\n');

    ws.end();
}
Enter fullscreen mode Exit fullscreen mode

Top comments (1)

Collapse
 
nahlagalal profile image
NahlaGalal
function birthday(s, d, m) {
    let cnt = 0;

    for (let i = 1; i < s.length; i++) {
        s[i] += s[i - 1];
    }

    for (let i = m - 1; i < s.length; i++) {
        if (i === m - 1) {
            if (s[i] === d) cnt++;
        } else {
            if (s[i] - s[i - m] === d) cnt++;
        }
    }
    return cnt;
}
Enter fullscreen mode Exit fullscreen mode