Module ā§Ē ¡ if, switch āĻāϰ loop
Problem: if, switch āĻāϰ loop
āĻāĻ lesson-āĻ āϝāĻž āĻļāĻŋāĻāĻŦā§
- āĻ āĻāĻžāύāĻž āĻĻā§āϰā§āĻā§āϝā§āϰ input āĻĒāĻĄāĻŧāϤ⧠āĻĒāĻžāϰāĻŦā§ āĻāĻ āĻĻāĻļāĻāĻžāϝāĻŧ āϞāĻžāĻāĻž āϤāĻŋāύāĻāĻžāĻŦā§: āĻāĻā§ āĻāĻāĻāĻž count, āĻāĻāĻāĻž sentinel, āĻ āĻĨāĻŦāĻž input āĻĢā§āϰāĻŋāϝāĻŧā§ āύāĻž āϝāĻžāĻāϝāĻŧāĻž āĻĒāϰā§āϝāύā§āϤāĨ¤
- āĻĒā§āϰāϤāĻŋāĻāĻž problem-āĻāϰ āĻāύā§āϝ āĻ āĻŋāĻ loop-āĻāϰ āĻāĻāĻžāϰ āĻŦā§āĻā§ āύāĻŋāϤ⧠āĻĒāĻžāϰāĻŦā§, āĻāϰ āĻāϤā§āϤāϰ āĻāĻžāύāĻžāĻŽāĻžāϤā§āϰ loop āĻĨāĻžāĻŽāĻžāϤ⧠āĻĒāĻžāϰāĻŦā§
break, āĻāĻāĻāĻž flag āĻŦāĻž āĻāĻāĻāĻž labelledbreakāĻĻāĻŋāϝāĻŧā§āĨ¤ - Submit āĻāϰāĻžāϰ āĻāĻā§āĻ hidden test-āĻāϰ āĻāĻŋāύāĻžāϰāĻžāĻā§āϞ⧠āύāĻŋāĻā§ test āĻāϰāϤ⧠āĻĒāĻžāϰāĻŦā§: n = 1, āĻ āĻŋāĻ āϏā§āĻŽāĻžāϰ āĻāĻĒāϰā§āϰ āĻāĻāĻāĻž value, āĻāĻāĻāĻž āĻĢāĻžāĻāĻāĻž input āĻāϰ āϏāĻŦāĻā§āϝāĻŧā§ āĻŦāĻĄāĻŧ āĻŽāĻžāĻĒāĨ¤
āĻĻāĻļāĻāĻž problem, Node 22-āĻ hidden test āĻĻāĻŋāϝāĻŧā§ grade āĻšāϝāĻŧ, āĻŽāĻžāύ⧠Playground āϝ⧠JavaScript āĻāĻžāϞāĻžāϝāĻŧ āϏā§āĻāĻžāĻāĨ¤ āĻāĻĻā§āϰ āĻĒā§āϰāϤā§āϝā§āĻāĻāĻžāϰ āϏāĻžāĻĨā§ āĻāĻ module-āĻāĻ āĻĻā§āĻāĻž āĻšāϝāĻŧā§āĻā§āĨ¤ steps-goal āĻāĻŋāϞ lesson 01-āĻ, āĻāϰ letter-grade, day-name āĻāϰ sum-until-zero āĻāĻŋāϞ lesson 02-āĻāĨ¤ Lesson 03-āĻ āĻāĻŋāϞ fizzbuzz, min-max-average, guessing-game āĻāϰ count-primes, lesson 04-āĻ till-commands, āĻāϰ first-pair-sum āĻāĻŋāϞ CP āĻāϰ Interview Pack-āĻāĨ¤
Problem 1, 2 āĻāϰ 5 (steps-goal, letter-grade āĻāϰ fizzbuzz) āϏāĻŦāĻžāϰ āĻāύā§āϝ freeāĨ¤ āĻŦāĻžāĻāĻŋ āϏāĻžāϤāĻāĻž Pro problem: āĻĒā§āϰāϤāĻŋāĻāĻž problem āĻāϞāĻžāĻĻāĻž āĻāϰ⧠lock āĻāϰāĻžāϰ āĻŦā§āϝāĻŦāϏā§āĻĨāĻž āĻāϏāĻŦā§ āĻĒāϰā§āϰ āĻāĻāĻāĻž release-āĻ, āĻāϰ āϤāĻžāϰ āĻāĻ āĻĒāϰā§āϝāύā§āϤ āĻĻāĻļāĻāĻžāĻ āĻā§āϞāĻžāĨ¤ Module test-āĻ āĻĻā§āĻā§ problem āĻāĻā§, fizzbuzz āĻāϰ min-max-average, āϤāĻžāĻ āĻ āĻĻā§āĻā§ āĻāĻāĻžāύ⧠āĻāĻā§ āϏāĻŽāĻžāϧāĻžāύ āĻāϰ⧠āϰāĻžāĻāĻž āĻāĻžāĻā§āϰāĨ¤
Bob loop āϞā§āĻā§, sample āĻāĻžāϞāĻžāϝāĻŧ, submit āĻāϰ⧠āĻĻā§āϝāĻŧāĨ¤ Zara āĻāĻā§ āύāĻŋāĻā§āϰ program āĻāĻžāϞāĻŋāϝāĻŧā§ āĻĻā§āĻā§ n = 1 āĻĻāĻŋāϝāĻŧā§, āĻāĻāĻāĻžāĻ āĻāύā§āĻĻāĻžāĻ āĻāĻžāĻĄāĻŧāĻž āĻāĻāĻāĻž input āĻĻāĻŋāϝāĻŧā§, āĻāϰ āĻ āĻŋāĻ 90 āύāĻŽā§āĻŦāϰ āĻĻāĻŋāϝāĻŧā§āĨ¤ āĻāĻ set-āĻ hidden test-āĻā§āϞ⧠āĻĨāĻžāĻā§ loop-āĻāϰ āĻĻā§āĻ āĻŽāĻžāĻĨāĻžāϝāĻŧāĨ¤ āĻāϰāĻž āϧāϰ⧠āĻĒā§āϰāĻĨāĻŽ pass, āĻļā§āώ pass, āĻāϰ āϏā§āĻ pass āϝā§āĻāĻžāύ⧠loop-āĻāϰ āĻĨāĻžāĻŽāĻžāϰ āĻāĻĨāĻž āĻāĻŋāϞāĨ¤
Loop āĻā§āĻāĻžāĻŦā§ āĻŦā§āĻā§ āϤāĻžāϞāĻŋāĻāĻž āĻļā§āώ
Starter āĻĒā§āϰ⧠input-āĻā§ token-āĻ āĻāĻžāĻ āĻāϰā§āĨ¤ Token āĻšāϞ⧠space āĻŦāĻž line break-āĻāϰ āĻŽāĻžāĻāĻāĻžāύā§āϰ āĻāĻ āĻā§āĻāϰ⧠textāĨ¤ next() āĻĒāϰā§āϰ token-āĻāĻž āĻĻā§āϝāĻŧ, āĻāϰ nextInt() āĻāĻāĻžāĻā§ āϏāĻāĻā§āϝāĻž āĻŦāĻžāύāĻžāϝāĻŧāĨ¤ Token āĻĒāĻĄāĻŧāĻž āĻāĻāĻāĻž loop-āĻāϰ āĻāϰāĻ āĻāĻāĻāĻž āĻāĻŋāύāĻŋāϏ āϞāĻžāĻā§: āĻāĻāύ āĻĒāĻĄāĻŧāĻž āĻĨāĻžāĻŽāĻžāϤ⧠āĻšāĻŦā§ āϏā§āĻāĻž āĻŦā§āĻāĻžāϰ āĻāĻĒāĻžāϝāĻŧāĨ¤
āĻāĻ āĻĻāĻļāĻāĻž problem āϤāĻŋāύāĻāĻž āĻāĻĒāĻžāϝāĻŧ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āĨ¤ āĻŦā§āĻļāĻŋāϰāĻāĻžāĻ āĻāĻā§ āĻāĻāĻāĻž count āĻĻā§āϝāĻŧ: n āĻĒāĻĄāĻŧā§, āϤāĻžāϰāĻĒāϰ n āĻŦāĻžāϰ loop āĻāĻžāϞāĻžāĻāĨ¤ sum-until-zero āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻāĻāĻž sentinel, āĻŽāĻžāύ⧠āĻāĻŽāύ āĻāĻāĻāĻž āĻŦāĻŋāĻļā§āώ value āϝā§āĻāĻž āĻļā§āώ āĻāĻŋāĻšā§āύāĻŋāϤ āĻāϰ⧠āĻāϰ āύāĻŋāĻā§ data-āϰ āĻ
āĻāĻļ āύāĻž; āĻāĻāĻžāύ⧠āϏā§āĻāĻž āĻĒā§āϰāĻĨāĻŽ 0āĨ¤ guessing-game āĻāϰ till-commands āĻĒāĻĄāĻŧā§ input āĻļā§āώ āύāĻž āĻšāĻāϝāĻŧāĻž āĻĒāϰā§āϝāύā§āϤ, āĻā§āύ⧠count āĻŦāĻž sentinel āĻāĻžāĻĄāĻŧāĻžāĻāĨ¤
Program input-āĻāϰ āĻļā§āώāĻāĻž āĻĻā§āĻā§ āĻā§āĻāĻžāĻŦā§? Token āĻĢā§āϰāĻŋāϝāĻŧā§ āĻā§āϞ⧠next() āĻĻā§āϝāĻŧ undefined, āĻāϰ nextInt() āĻĻā§āϝāĻŧ NaNāĨ¤ āĻāĻ āĻā§āĻ program-āĻāĻž āĻĻā§āĻā§āĻ āĻĻā§āĻāĻžāϝāĻŧ, input-āĻāϰ āĻāĻžāϝāĻŧāĻāĻžāϝāĻŧ āĻĻā§āĻā§ token-āĻāϰ āĻāĻāĻāĻž array āύāĻŋāϝāĻŧā§āĨ¤
const tokens = ["7", "3"];
let at = 0;
const next = () => tokens[at++];
console.log(next(), next(), next());
console.log(Number(undefined));
7 3 undefined
NaN
āϤāĻžāĻ input āĻļā§āώ āύāĻž āĻšāĻāϝāĻŧāĻž āĻĒāϰā§āϝāύā§āϤ āĻĒāĻĄāĻŧāĻž loop token-āĻāĻžāĻā§āĻ test āĻāϰā§: while (token !== undefined)āĨ¤ āϝ⧠loop āĻāĻāĻāĻž token āĻŦā§āĻļāĻŋ āĻĒāĻĄāĻŧā§, āϏ⧠undefined āĻĒāĻžāϝāĻŧ, āĻāĻāĻžāĻā§ NaN āĻŦāĻžāύāĻžāϝāĻŧ, āĻāϰ āϝ⧠āϝā§āĻāĻĢāϞ āĻā§āĻāϝāĻŧ āϏā§āĻāĻžāĻ āύāώā§āĻ āĻāϰā§āĨ¤
āϤāĻŋāύāĻāĻž āϏāĻžāϰāĻŋāĻ āĻļā§āώ āĻšāϝāĻŧ āĻāĻŽāύ āĻāĻāĻāĻž āĻŦāĻžāĻā§āϏā§, āϝā§āĻāĻžāĻā§ loop-āĻā§ āĻāĻŋāύāϤ⧠āĻšāĻŦā§ āĻāĻŋāύā§āϤ⧠data āĻšāĻŋāϏā§āĻŦā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āϝāĻžāĻŦā§ āύāĻžāĨ¤ Count āĻāĻā§ āĻĨā§āĻā§āĻ āĻŦāϞ⧠āĻĻā§āϝāĻŧ āĻŦāĻžāĻā§āϏāĻāĻž āĻā§āĻĨāĻžāϝāĻŧ; sentinel āĻāϰ undefined āĻāĻžāύāĻžāϝāĻŧ āĻļā§āϧ⧠āĻāĻāĻžāύ⧠āĻĒā§āĻāĻāĻžāϞā§āĨ¤
āĻāĻ āĻĻāĻļāĻāĻžāϝāĻŧ loop-āĻāϰ āĻāĻāĻžāϰāĻā§āϞā§
āĻĒā§āϰāϤāĻŋāĻāĻž problem-āĻ āϞāĻžāĻā§ āĻāĻžāϰ āϰāĻāĻŽ loop-āĻāϰ āĻāĻāĻāĻžāĨ¤ Lesson 04-āĻāϰ flowchart āĻāĻā§āϞ⧠āĻŦā§āĻā§ āύā§āϝāĻŧ āĻāĻāĻ āĻĒā§āϰāĻļā§āύ āĻĻāĻŋāϝāĻŧā§: count āĻāĻŋ āĻāĻžāύāĻž, āĻāϰ āĻāĻā§āĻāĻžāĻā§ āĻĨāĻžāĻŽāϤ⧠āĻšāĻŦā§ āĻāĻŋ?
- āĻā§āύāĻž āĻāĻāĻāĻž
forloopāĨ¤steps-goal,letter-grade,day-name,fizzbuzzāĻāϰmin-max-averageāĻāĻā§ n āĻĒāĻĄāĻŧā§, āϤāĻžāĻ loop āĻ āĻŋāĻ n āĻŦāĻžāϰ āĻāϞā§āĨ¤ - Sentinel āϏāĻš āĻāĻāĻāĻž while loopāĨ¤
sum-until-zeroloop-āĻāϰ āĻāĻā§ āĻāĻāĻāĻž āϏāĻāĻā§āϝāĻž āĻĒāĻĄāĻŧā§, āĻāϰ loop-āĻāϰ test āϏāĻāĻā§āϝāĻžāĻāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰā§āϰ āĻāĻā§āĻ āĻāĻāĻžāĻā§ check āĻāϰā§āĨ¤ - Input āĻļā§āώ āύāĻž āĻšāĻāϝāĻŧāĻž āĻĒāϰā§āϝāύā§āϤ āĻāĻāĻāĻž while loopāĨ¤
guessing-gameāĻāϰtill-commandstoken-āĻāĻžundefinedāĻāĻŋ āύāĻž āĻĻā§āĻā§, āĻāϰ āĻĻā§āĻā§āĻ āĻāĻā§āĻāĻžāĻā§ āĻĨāĻžāĻŽāϤā§āĻ āĻĒāĻžāϰā§āĨ¤ - āĻĻā§āĻā§ nested loopāĨ¤
count-primesāϏāĻāĻā§āϝāĻžāĻā§āϞā§āϰ āĻāĻĒāϰ āĻāϞāĻž āĻāĻāĻāĻž loop-āĻāϰ āĻā§āϤāϰ⧠āĻā§āĻŖāĻŋāϤāĻ āĻāĻžāĻā§, āĻāϰfirst-pair-sumāĻĒā§āϰāϤāĻŋāĻāĻž āĻā§āĻĄāĻŧāĻž āĻā§āώā§āĻāĻž āĻāϰā§āĨ¤
Loop-āĻāϰ āĻā§āϤāϰ⧠āϏāĻŋāĻĻā§āϧāĻžāύā§āϤāĻā§āϞ⧠āĻšāϝāĻŧ āĻāĻāĻāĻž if āĻāϰ else if chain āĻĻāĻŋāϝāĻŧā§ (letter-grade, fizzbuzz), āύāϝāĻŧāϤ⧠āĻāĻāĻāĻž switch āĻĻāĻŋāϝāĻŧā§ (day-name, till-commands)āĨ¤ āĻĻā§āĻā§āĻ āĻĒā§āϰāĻĨāĻŽ āĻŽāĻŋāϞ⧠āϝāĻžāĻāϝāĻŧāĻžāϤ⧠āĻĨā§āĻŽā§ āϝāĻžāϝāĻŧ, āϤāĻžāĻ test-āĻā§āϞā§āϰ āĻā§āϰāĻŽāĻ āĻāϤā§āϤāϰā§āϰ āĻ
āĻāĻļāĨ¤
āĻāĻā§āĻāĻžāĻā§ āĻĨāĻžāĻŽāĻž: break, āĻāĻāĻāĻž flag āĻāϰ āĻāĻāĻāĻž label
āϤāĻŋāύāĻāĻž problem input āĻļā§āώ āĻšāĻāϝāĻŧāĻžāϰ āĻāĻā§āĻ āĻĨāĻžāĻŽā§āĨ¤ guessing-game āĻĨāĻžāĻŽā§ āĻ āĻŋāĻ āĻāύā§āĻĻāĻžāĻā§, till-commands āĻĨāĻžāĻŽā§ close-āĻ, āĻāϰ first-pair-sum āĻĨāĻžāĻŽā§ āĻĒā§āϰāĻĨāĻŽ āĻā§āĻĄāĻŧāĻžāϝāĻŧāĨ¤ āĻĒā§āϰāϤā§āϝā§āĻāĻāĻžāϰ āϞāĻžāĻā§ āĻāϞāĻžāĻĻāĻž āϝāύā§āϤā§āϰāĨ¤
break āϏāĻŦāĻā§āϝāĻŧā§ āĻāĻžāĻā§āϰ loop āĻŦāĻž switch āĻĨā§āĻā§ āĻŦā§āϰ āĻšāϝāĻŧ, āĻāϰ āĻļā§āϧ⧠āĻāĻāĻž āĻĨā§āĻā§āĻāĨ¤ āĻāĻāĻāĻž loop-āĻāϰ āĻā§āϤāϰ⧠āĻŦāϏāĻž switch-āĻāϰ āĻā§āϤāϰ⧠āĻāĻāĻāĻž break āĻŦā§āϰ āĻšāϝāĻŧ switch āĻĨā§āĻā§, āĻāϰ loop āĻāϞāϤā§āĻ āĻĨāĻžāĻā§āĨ¤ āϤāĻžāĻ āϝ⧠āĻĨāĻžāĻŽāĻžāĻāĻž switch-āĻāϰ āĻā§āϤāϰ⧠āĻĨāĻžāĻā§, āϤāĻžāϰ āϞāĻžāĻā§ āĻāĻāĻāĻž flag, āĻŽāĻžāύ⧠loop-āĻāϰ test āϝ⧠boolean āĻĒāĻĄāĻŧā§, āύāϝāĻŧāϤ⧠loop-āĻāϰ āĻāĻžāϝāĻŧā§ āĻāĻāĻāĻž labelāĨ¤
Label āĻšāϞ⧠loop-āĻāϰ āϏāĻžāĻŽāύ⧠colon āĻĻā§āĻāϝāĻŧāĻž āĻāĻāĻāĻž āύāĻžāĻŽ, āϝā§āĻŽāύ search:āĨ¤ āϤāĻāύ break search; āĻāĻ loop āĻĨā§āĻā§ āĻŦā§āϰ āĻšāϝāĻŧ, āĻāϰ āĻā§āϤāϰā§āϰ āĻāϰā§āĻāĻāĻž loop āĻĨā§āĻā§ āϞāĻŋāĻāϞā§āĻāĨ¤ āĻāĻāĻāĻž āĻāϤā§āϤāϰ āϝāĻāύ āĻāĻāϏāĻžāĻĨā§ āĻĻā§āĻā§ loop āĻļā§āώ āĻāϰā§, āϤāĻāύ āĻāĻāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āĨ¤ āύāĻŋāĻā§āϰ Example 3 āĻāĻāĻž āĻĻā§āĻāĻžāϝāĻŧ, āĻ
āύā§āϝ āĻāĻāĻāĻž problem-āĻāĨ¤
Hidden test āϝ⧠āĻāĻŋāύāĻžāϰāĻžāĻā§āϞ⧠āϧāϰā§
āĻĒā§āϰāϤāĻŋāĻāĻž problem-āĻ 11 āĻĨā§āĻā§ 15āĻāĻž hidden test, āĻāϰ āĻĒā§āϰāϤāĻŋāĻāĻž test file 1 MiB-āĻāϰ āύāĻŋāĻā§ āĻĨāĻžāĻā§āĨ¤ āĻāϰāĻž āĻāϞ⧠āϏāĻŦāĻā§āϝāĻŧā§ āĻā§āĻ input āĻĨā§āĻā§, constraints āϝāϤāĻāĻž āĻŦāĻĄāĻŧ āĻšāϤ⧠āĻĻā§āϝāĻŧ āĻāϰ judge-āĻ āϝāϤāĻāĻž āĻāĻāĻā§ āϤāϤāĻāĻž āĻĒāϰā§āϝāύā§āϤāĨ¤ āĻāĻ āĻĻā§āĻāϝāĻŧā§āϰ āĻŽāĻžāĻāĻāĻžāύ⧠āĻŦāϏ⧠āĻāĻā§ āϏā§āĻ āĻāĻŋāύāĻžāϰāĻžāĻā§āϞā§, āϝā§āĻā§āϞ⧠āύāĻŋāϝāĻŧā§ āĻāĻ module āϤā§āĻŽāĻžāĻā§ āϏāĻžāĻŦāϧāĻžāύ āĻāϰā§āĻā§āĨ¤ Table-āĻāĻž āĻāĻĻā§āϰ āύāĻžāĻŽ āĻŦāϞ⧠āĻĻā§āϝāĻŧ, āϝāĻžāϤ⧠āϤā§āĻŽāĻŋ āĻāĻā§āĻ āĻāĻā§āϞ⧠āĻāĻžāϞāĻŋāϝāĻŧā§ āĻĻā§āĻāϤ⧠āĻĒāĻžāϰā§āĨ¤
| Problem | Access | Test | Hidden test āϝāĻž āĻāĻžāϞāĻžāϝāĻŧ |
|---|---|---|---|
steps-goal | Free | 12 | n = 1, āϞāĻā§āώā§āϝ 0 āĻāϰ 100000, āĻ āĻŋāĻ āϞāĻā§āώā§āϝā§āϰ āĻāĻĒāϰ āĻāϰ āĻāĻ step āĻāĻŽ āĻĻāĻŋāύ, 100000āĻāĻž āĻĻāĻŋāύ |
letter-grade | Free | 11 | 59 āĻāϰ 60, 89 āĻāϰ 90, 0 āĻāϰ 100, -1 āĻāϰ 101, -1000 āĻāϰ 1000, -5 āĻĨā§āĻā§ 105 āĻĒāϰā§āϝāύā§āϤ āĻĒā§āϰāϤāĻŋāĻāĻž āύāĻŽā§āĻŦāϰ, 100000āĻāĻž āύāĻŽā§āĻŦāϰ |
day-name | Pro | 11 | āϏāĻžāϤāĻāĻž āĻĻāĻŋāύāĻ āĻĻā§āĻ āĻā§āϰāĻŽā§, 0, 8 āĻāϰ negative āϏāĻāĻā§āϝāĻž, -1000 āĻāϰ 1000, 100000āĻāĻž āϏāĻāĻā§āϝāĻž |
sum-until-zero | Pro | 12 | āϏāĻŦāĻžāϰ āĻāĻā§ āĻāĻāĻāĻž 0, 0-āĻāϰ āĻĒāϰ⧠āϏāĻāĻā§āϝāĻž, āĻāϝāĻŧā§āĻāĻāĻž 0, āĻāϝāĻŧā§āĻ āϞāĻžāĻāύ⧠āĻāĻĄāĻŧāĻžāύ⧠āϏāĻāĻā§āϝāĻž, 1000000-āĻāϰ 100000āĻāĻž āϏāĻāĻā§āϝāĻž |
fizzbuzz | Free | 13 | n = 1, 2, 3 āĻāϰ 5, 15-āĻāϰ āĻĻā§āĻ āĻĒāĻžāĻļā§ 14 āĻāϰ 16, 30 āĻāϰ 45, n = 100000 |
min-max-average | Pro | 14 | n = 1, āϏāĻŦ negative, āϏāĻŦ positive, āϏāĻŦ āϏāĻŽāĻžāύ, 1.6666666666666667 āĻāϰ 0.00001 āĻāĻĄāĻŧ, āĻĻā§āĻ āĻŽāĻžāĻĨāĻž 1000000000 āĻāϰ -1000000000 |
guessing-game | Pro | 12 | āĻāĻāĻāĻžāĻ āĻāύā§āĻĻāĻžāĻ āύā§āĻ, āĻĒā§āϰāĻĨāĻŽāĻŦāĻžāϰā§āĻ āĻ āĻŋāĻ, āĻāĻāύ⧠āĻ āĻŋāĻ āύāĻž, āĻ āĻŋāĻ āĻāύā§āĻĻāĻžāĻā§āϰ āĻĒāϰā§āĻ āĻāύā§āĻĻāĻžāĻ, 100-āĻāϰ āĻŦāĻŋāĻĒāĻā§āώ⧠9 āĻāϰ 1000, 100000āĻāĻž āĻāύā§āĻĻāĻžāĻ |
till-commands | Pro | 14 | āĻļā§āϧ⧠close, āĻĢāĻžāĻāĻāĻž till, āĻā§āύ⧠sale-āĻāϰ āĻāĻā§ total, 0-āĻāϰ āύāĻŋāĻā§ āĻŽā§āĻ, āĻ
āĻā§āύāĻž āĻļāĻŦā§āĻĻ āĻšāĻŋāϏā§āĻŦā§ sales āĻāϰ closed, close-āĻāϰ āĻĒāϰ⧠command, 100000āĻāĻž command |
count-primes | Pro | 13 | n = 1, 2, 3 āĻāϰ 4, 25 āĻāϰ 49, 97, 1000000, 14999981 āĻāϰ 15000000 |
first-pair-sum | Pro | 15 | āĻā§āĻĄāĻŧāĻž āϏāĻš āĻāϰ āĻā§āĻĄāĻŧāĻž āĻāĻžāĻĄāĻŧāĻž n = 2, āĻāĻŽāύ āϏāĻāĻā§āϝāĻž āϝā§āĻāĻž āύāĻŋāĻā§āϰ āϏāĻžāĻĨā§āĻ āĻā§āĻĄāĻŧāĻž āĻŦāĻžāĻāϧāϤ, āĻāĻāĻĻāĻŽ āĻļā§āώ⧠āĻā§āĻĄāĻŧāĻž, āĻĒāϰā§āϰ i āĻ āĻĨāĻ āĻā§āĻ j, āĻā§āĻĄāĻŧāĻžāĻšā§āύ n = 5000 |
āĻā§āĻ āĻāĻŋāύāĻžāϰāĻžāĻā§āϞ⧠Playground-āĻ āĻāĻžāϞāĻŋāϝāĻŧā§ āĻĻā§āĻā§āĨ¤ āĻāϰ stdin āĻŦāĻžāĻā§āϏ⧠āϏāϰā§āĻŦā§āĻā§āĻ 10000āĻāĻž āĻ āĻā§āώāϰ āϧāϰā§, āϤāĻžāĻ āϏāĻŦāĻā§āϝāĻŧā§ āĻŦāĻĄāĻŧ test-āĻā§āϞ⧠āĻāĻāĻžāύ⧠āĻāĻāĻā§ āύāĻžāĨ¤ āĻāĻ āϏā§āĻŽāĻžāĻāĻž āĻŦāĻžāĻā§āϏā§āϰ, judge-āĻāϰ āύāĻžāĨ¤ āϤāĻžāĻāĻžāĻĄāĻŧāĻž āĻāĻāĻāĻž āĻāĻŋāύāĻžāϰāĻž āύāĻŋāϝāĻŧā§ āύāĻŋāĻā§ āϞā§āĻāĻž āĻāĻāĻāĻž test āĻŦāĻĄāĻŧ test-āĻāϰ āĻā§āϝāĻŧā§ āĻŦā§āĻļāĻŋ āĻāĻĨāĻž āĻŦāϞā§āĨ¤
āĻāĻ āĻĻāĻļāĻāĻž problem-āĻ āϝ⧠āϰā§āĻĒāĻā§āϞ⧠āϞāĻžāĻā§
const n = nextInt(); read a count first
for (let i = 0; i < n; i++) { ... } the body runs n times
for (let i = 1; i <= n; i++) { ... } i takes 1, 2, ... n, n included
let x = nextInt(); read before a sentinel loop...
while (x !== 0) { ... x = nextInt(); } ...and again at the end of each pass
let t = next(); undefined once the input ends
while (t !== undefined) { ... t = next(); }
if (a) { ... } else if (b) { ... } else { ... } the first true test wins
switch (v) { case 1: ... break; default: ... } v === each case, top down
case 6: case 7: ... two cases share one body
break; leave the nearest loop or switch
outer: for (...) { for (...) { break outer; } } leave both loops
i % 3 === 0 i is a multiple of 3
- āύāĻŋāĻā§āϰ āĻĒā§āϰāϤāĻŋāĻāĻž starter āĻāĻ track-āĻāϰ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ starterāĨ¤ āĻāϰ āϞāĻžāĻāύāĻā§āϞ⧠āϝā§āĻŽāύ āĻāĻā§ āϰāĻžāĻā§, āĻāϰ āύāĻŋāĻā§āϰ code āϞā§āĻā§ comment āϝā§āĻāĻžāύ⧠āĻŦāϞ⧠āϏā§āĻāĻžāύā§āĨ¤
- āĻĒā§āϰāϤāĻŋāĻāĻž āĻāϤā§āϤāϰā§āϰ āĻāύā§āϝ output-āĻāϰ āĻāĻāĻāĻž āϞāĻžāĻāύ push āĻāϰā§āĨ¤ āĻļāĻŦā§āĻĻāĻā§āϞ⧠print āĻšāϝāĻŧ statement āϝā§āĻāĻžāĻŦā§ āϞā§āĻā§ āĻšā§āĻŦāĻšā§ āϏā§āĻāĻžāĻŦā§, āĻā§āĻ-āĻŦāĻĄāĻŧ āĻšāĻžāϤā§āϰ āĻ āĻā§āώāϰāĻ āĻāĻāĻāĨ¤
out-āĻ push āĻāϰāĻž number print āĻšāϝāĻŧString()āϝā§āĻāĻžāĻŦā§ print āĻāϰ⧠āϏā§āĻāĻžāĻŦā§, āϤāĻžāĻ āĻāĻāύ⧠āĻšāĻžāϤ⧠format āĻāϰāϤ⧠āĻšāϝāĻŧ āύāĻžāĨ¤
Zara āĻĻāĻŋāύ⧠n āĻŦāĻžāϰ āĻĢā§āύā§āϰ battery-āϰ āϞā§āĻā§āϞ āϞāĻŋāĻā§ āϰāĻžāĻā§āĨ¤ āĻ āĻāĻžāϝāĻŧ 20-āĻāϰ āύāĻŋāĻā§āϰ āĻĒā§āϰāĻĨāĻŽ reading-āĻāĻž, āĻāϰ āĻāĻāĻž āĻĒā§āϝāĻŧā§ āĻā§āϞ⧠āĻĒāĻĄāĻŧāĻž āĻĨāĻžāĻŽāĻŋāϝāĻŧā§ āĻĻāĻŋāϤā§āĨ¤
const input = require("fs").readFileSync(0, "utf8");
const tokens = input.split(/\s+/).filter(Boolean);
let at = 0;
const next = () => tokens[at++];
const nextInt = () => Number(next());
const out = [];
const n = nextInt();
let checked = 0;
let found = false;
for (let i = 1; i <= n; i++) {
const level = nextInt();
checked++;
if (level < 20) {
out.push("first low " + level + " at reading " + i);
found = true;
break;
}
}
if (!found) {
out.push("never low");
}
out.push("readings checked " + checked);
console.log(out.join("\n"));
first low 19 at reading 4
readings checked 4
āĻāĻ output input 6 āĻāϰ 85 60 41 19 12 50-āĻāϰ āĻāύā§āϝāĨ¤ Loop āĻāϝāĻŧāĻāĻž pass-āĻāϰ āĻāύā§āϝ āϤā§āϰāĻŋ āĻāĻŋāϞ, āĻāϰ break āĻāĻāĻžāĻā§ āĻāĻžāϰāĻāĻžāϰ āĻĒāϰā§āĻ āĻļā§āώ āĻāϰ⧠āĻĻāĻŋāϞāĨ¤ Flag found loop-āĻāϰ āĻĒāϰā§āϰ code-āĻā§ āĻāĻžāύāĻžāϝāĻŧ loop āĻā§āύ āĻĒāĻĨā§ āĻļā§āώ āĻšāϞā§, āϤāĻžāĻ never low print āĻšāϝāĻŧ āĻļā§āϧ⧠āϤāĻāύ, āϝāĻāύ āĻā§āύ⧠reading-āĻ āĻāĻŽ āĻāĻŋāϞ āύāĻžāĨ¤
Amara-āϰ driving simulator āĻā§āϰāĻžāĻĢāĻŋāĻ āϞāĻžāĻāĻā§āϰ āϰāĻ āĻĒāĻĄāĻŧā§, āĻĒā§āϰāϤāĻŋ token-āĻ āĻāĻāĻāĻž, input āĻļā§āώ āύāĻž āĻšāĻāϝāĻŧāĻž āĻĒāϰā§āϝāύā§āϤāĨ¤ āĻĻā§āĻā§ āĻŦāĻžāύāĻžāύ āĻāĻāĻ āϞāĻžāĻāĻ āĻŦā§āĻāĻžāϝāĻŧ, āϤāĻžāĻ āĻāĻĻā§āϰ case-āĻā§āϞ⧠āĻāĻāĻāĻž body āĻāĻžāĻāĻžāĻāĻžāĻāĻŋ āĻāϰā§āĨ¤
const input = require("fs").readFileSync(0, "utf8");
const tokens = input.split(/\s+/).filter(Boolean);
let at = 0;
const next = () => tokens[at++];
const nextInt = () => Number(next());
const out = [];
let lights = 0;
let colour = next();
while (colour !== undefined) {
lights++;
switch (colour) {
case "green":
out.push("go");
break;
case "amber":
case "yellow":
out.push("slow down");
break;
case "red":
out.push("stop");
break;
default:
out.push("unknown " + colour);
}
colour = next();
}
out.push("lights " + lights);
console.log(out.join("\n"));
go
slow down
stop
unknown blue
slow down
lights 5
āĻāĻ output input green amber red blue yellow-āĻāϰ āĻāύā§āϝāĨ¤ amber āĻāϰ yellow āĻāĻāĻ body-āϤ⧠āĻĒā§āĻāĻāĻžāϝāĻŧ, āĻāĻžāϰāĻŖ case "amber":-āĻāϰ āύāĻŋāĻā§āϰ āĻā§āύ⧠body āύā§āĻ, āĻ āĻāĻĄāĻŧāĻŋāϝāĻŧā§ āĻĒāϰā§āϰāĻāĻžāϝāĻŧ āĻāϞ⧠āϝāĻžāϝāĻŧāĨ¤ āĻāĻāĻžāύ⧠āĻĒā§āϰāϤāĻŋāĻāĻž break āĻļā§āϧ⧠switch āĻĨā§āĻā§ āĻŦā§āϰ āĻšāϝāĻŧ, āĻāϰ while loop āĻāϞāϤ⧠āĻĨāĻžāĻā§ āϝāϤāĻā§āώāĻŖ āύāĻž next() āĻĻā§āϝāĻŧ undefinedāĨ¤
Kenji-āϰ cinema app āϏāĻžāϰāĻŋ āϧāϰ⧠āϧāϰ⧠āĻĒā§āϰāĻĨāĻŽ āĻāĻžāϞāĻŋ seat āĻā§āĻāĻā§āĨ¤ Input āĻšāϞ⧠āϏāĻžāϰāĻŋāϰ āϏāĻāĻā§āϝāĻž āĻāϰ āĻĒā§āϰāϤāĻŋ āϏāĻžāϰāĻŋāϤ⧠seat-āĻāϰ āϏāĻāĻā§āϝāĻž, āϤāĻžāϰāĻĒāϰ āĻĒā§āϰāϤāĻŋāĻāĻž āĻāϰāĻž seat-āĻāϰ āĻāύā§āϝ 1 āĻāϰ āĻāĻžāϞāĻŋ seat-āĻāϰ āĻāύā§āϝ 0āĨ¤
const input = require("fs").readFileSync(0, "utf8");
const tokens = input.split(/\s+/).filter(Boolean);
let at = 0;
const next = () => tokens[at++];
const nextInt = () => Number(next());
const out = [];
const rows = nextInt();
const seats = nextInt();
let checked = 0;
let answer = "no free seat";
search: for (let r = 1; r <= rows; r++) {
for (let s = 1; s <= seats; s++) {
const taken = nextInt();
checked++;
if (taken === 0) {
answer = "free seat: row " + r + ", seat " + s;
break search;
}
}
}
out.push(answer);
out.push("seats checked " + checked);
console.log(out.join("\n"));
free seat: row 2, seat 3
seats checked 7
āĻāĻ output input 3 4, āϤāĻžāϰāĻĒāϰ āϏāĻžāϰāĻŋ 1 1 1 1, 1 1 0 1 āĻāϰ 0 1 1 1-āĻāϰ āĻāύā§āϝāĨ¤ break search; seat 7-āĻ āĻĻā§āĻā§ loop āĻĨā§āĻā§āĻ āĻŦā§āϰ āĻšāϝāĻŧā§ āϝāĻžāϝāĻŧ, āϤāĻžāĻ āϏāĻžāϰāĻŋ 3-āĻāϰ āĻāĻžāϞāĻŋ seat-āĻāϰ āĻĻāĻŋāĻā§ āĻā§āĻ āϤāĻžāĻāĻžāϝāĻŧāĻ āύāĻžāĨ¤ āϏāĻžāϧāĻžāϰāĻŖ āĻāĻāĻāĻž break āĻŦā§āϰ āĻšāϤ⧠āĻļā§āϧ⧠āĻā§āϤāϰā§āϰ loop āĻĨā§āĻā§, āĻāϰ āϏāĻžāϰāĻŋ 3-āĻ āĻā§āĻāĻāĻž āĻšāϝāĻŧā§ āϝā§āϤāĨ¤
āĻāĻāĻž āĻā§āĻĨāĻžāϝāĻŧ āĻāĻžāĻā§ āϞāĻžāĻā§
- HTTP/1.1-āĻāϰ chunked transfer encodingāĨ¤ āϝ⧠server āĻāϤā§āϤāϰāĻāĻž stream āĻāϰ⧠āĻĒāĻžāĻ āĻžāϝāĻŧ, āϏ⧠āĻāĻāĻž āĻĒāĻžāĻ āĻžāϝāĻŧ āĻā§āĻāϰ⧠āĻā§āĻāϰ⧠āĻāϰā§, āĻĒā§āϰāϤāĻŋāĻāĻžāϰ āĻāĻā§ āϤāĻžāϰ size, āĻāϰ size 0-āĻāϰ āĻāĻāĻāĻž āĻā§āĻāϰ⧠body āĻļā§āώ āĻāϰā§āĨ¤ āĻāĻ 0 āĻāĻāĻāĻž sentinel, āĻšā§āĻŦāĻšā§
sum-until-zero-āĻāϰ āĻāĻāĻžāϰāĨ¤ - Node-āĻāϰ
readlinemoduleāĨ¤ āĻāĻāĻž āĻāĻāĻāĻž stream āϞāĻžāĻāύ āϧāϰ⧠āϧāϰ⧠āĻĒāĻĄāĻŧā§, āĻāϰ input āĻļā§āώ āĻšāϞ⧠āĻāĻāĻāĻžcloseevent āĻĒāĻžāĻ āĻžāϝāĻŧāĨ¤ Node-āĻ āϞā§āĻāĻž command-line tool āĻāĻ event-āĻā§āĻ āύāĻŋāĻā§āϰ "input āĻļā§āώ āύāĻž āĻšāĻāϝāĻŧāĻž āĻĒāϰā§āϝāύā§āϤ" test āĻšāĻŋāϏā§āĻŦā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āĨ¤ - Unix-āĻāϰ
headtoolāĨ¤head -n 10āύāĻŋāĻā§āϰ input-āĻāϰ āĻĒā§āϰāĻĨāĻŽ āĻĻāĻļāĻāĻž āϞāĻžāĻāύ print āĻāϰ⧠āĻĨā§āĻŽā§ āϝāĻžāϝāĻŧ, input āϝāϤ āϞāĻŽā§āĻŦāĻžāĻ āĻšā§āĻāĨ¤ āĻāĻāĻž āĻāĻā§āĻāĻžāĻā§ āĻŦā§āϰ āĻšāĻāϝāĻŧāĻž āĻāĻāĻāĻž āĻā§āύāĻž loopāĨ¤ Array.prototype.findāĨ¤ ECMAScript specification āĻāĻāĻžāĻā§ āĻāĻŽāύ āĻāĻāĻāĻž loop āĻšāĻŋāϏā§āĻŦā§ āϏāĻāĻā§āĻāĻžāϝāĻŧāĻŋāϤ āĻāϰā§, āϝā§āĻāĻž test āĻĒāĻžāĻļ āĻāϰāĻž āĻĒā§āϰāĻĨāĻŽ element-āĻāĻž āĻĢā§āϰāϤ āĻĻā§āϝāĻŧ āĻāϰ āĻāϰ āĻĒāϰā§āϰ āĻāĻŋāĻā§āϰ āĻĻāĻŋāĻā§ āϤāĻžāĻāĻžāϝāĻŧ āύāĻžāĨ¤ Module 7 āĻāĻāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§; āĻā§āϤāϰ⧠āĻāĻāĻžguessing-game-āĻāϰāĻ āĻāĻā§āĻāĻžāĻā§ āĻŦā§āϰ āĻšāĻāϝāĻŧāĻžāĨ¤
āϝ⧠āĻā§āϞāĻā§āϞ⧠āϏāĻŦāĻžāĻ āĻāϰā§
ā§§. āĻāĻāĻāĻž token āĻŦā§āĻļāĻŋ āĻĒāĻĄāĻŧāĻžāĨ¤
const input = require("fs").readFileSync(0, "utf8");
const tokens = input.split(/\s+/).filter(Boolean);
let at = 0;
const next = () => tokens[at++];
const nextInt = () => Number(next());
const out = [];
const n = nextInt();
let sum = 0;
for (let i = 0; i <= n; i++) {
sum += nextInt();
}
out.push(sum);
console.log(out.join("\n"));
NaN
āĻāĻāĻž input 3 āĻāϰ 4 5 6-āĻāϰ outputāĨ¤ i = 0 āĻāϰ i <= n āĻĻāĻŋāϝāĻŧā§ loop āĻāϞ⧠āĻāĻžāϰāĻŦāĻžāϰ, āĻāϰ āĻāĻžāϰ āύāĻŽā§āĻŦāϰ nextInt() āĻĻā§āϝāĻŧ NaNāĨ¤ āĻā§āύ⧠error āύā§āĻ, āϤāĻžāĻ āĻā§āϰ āĻĒāĻžāĻŦā§ āĻļā§āϧ⧠judge-āĻāϰ Wrong Answer āĻĻā§āĻā§āĨ¤ āĻāĻ āĻā§āϞāĻāĻž āϤā§āĻŽāĻŋāĻ āĻāϰāĻŦā§, āĻāĻžāϰāĻŖ 1 āĻĨā§āĻā§ āĻā§āύāϞ⧠<= n āĻ āĻŋāĻāĻ āĻĻā§āĻāĻžāϝāĻŧāĨ¤ 0 āĻĨā§āĻā§ āĻā§āύāϞ⧠< n, 1 āĻĨā§āĻā§ āĻā§āύāϞ⧠<= nāĨ¤
⧍. Loop āĻļā§āώ āĻāϰāĻžāϰ āĻāύā§āϝ switch-āĻāϰ āĻā§āϤāϰ⧠breakāĨ¤
const input = require("fs").readFileSync(0, "utf8");
const tokens = input.split(/\s+/).filter(Boolean);
let at = 0;
const next = () => tokens[at++];
const nextInt = () => Number(next());
const out = [];
let word = next();
while (word !== undefined) {
switch (word) {
case "stop":
break;
default:
out.push(word);
}
word = next();
}
console.log(out.join("\n"));
ready
set
go
Input āĻāĻāĻžāύ⧠ready set stop go, āĻāϰ go āĻāĻāύā§āĻ print āĻšāĻāϝāĻŧāĻžāϰ āĻāĻĨāĻž āύāĻžāĨ¤ break āĻŦā§āϰ āĻšāϝāĻŧā§āĻā§ switch āĻĨā§āĻā§, āϝā§āĻāĻž āĻāϰ āϏāĻŦāĻā§āϝāĻŧā§ āĻāĻžāĻā§ āĻāĻŋāϞ, āĻāϰ loop āĻĒāĻĄāĻŧā§āĻ āĻāϞā§āĻā§āĨ¤ āĻāĻ āĻā§āϞāĻāĻž āϤā§āĻŽāĻŋāĻ āĻāϰāĻŦā§, āĻāĻžāϰāĻŖ āĻĻā§āĻ āĻāĻžāϝāĻŧāĻāĻžāϤā§āĻ break āĻŽāĻžāύ⧠"āĻĨāĻžāĻŽā§"āĨ¤ Loop āĻļā§āώ āĻāϰ⧠āĻāϰ test-āĻ āĻāĻāĻāĻž flag āĻĻāĻŋāϝāĻŧā§, āύāϝāĻŧāϤ⧠loop-āĻāϰ āĻāĻžāϝāĻŧā§ āĻāĻāĻāĻž label āĻŦāϏāĻŋāϝāĻŧā§ āϏā§āĻ label āϏāĻš break āϞā§āĻā§āĨ¤
ā§Š. Sentinel-āĻā§ data āĻšāĻŋāϏā§āĻŦā§ āĻā§āύāĻžāĨ¤
const input = require("fs").readFileSync(0, "utf8");
const tokens = input.split(/\s+/).filter(Boolean);
let at = 0;
const next = () => tokens[at++];
const nextInt = () => Number(next());
const out = [];
let count = 0;
let total = 0;
let age = 0;
do {
age = nextInt();
count++;
total += age;
} while (age !== -1);
out.push(count + " ages, total " + total);
console.log(out.join("\n"));
3 ages, total 39
Input 20 20 -1, āϝā§āĻāĻžāύ⧠-1 āĻļā§āώ āĻāĻŋāĻšā§āύāĻŋāϤ āĻāϰā§, āϤāĻžāĻ āĻāϤā§āϤāϰ 2āĻāĻž āĻŦāϝāĻŧāϏ āĻāϰ āĻŽā§āĻ 40āĨ¤ do...while loop āύāĻŋāĻā§āϰ test-āĻāϰ āĻāĻā§ body āĻāĻžāϞāĻžāϝāĻŧ, āϤāĻžāĻ test āĻĻā§āĻāĻžāϰ āĻāĻā§āĻ -1 āĻā§āύāĻž āĻāϰ āϝā§āĻ āĻāϰāĻž āĻšāϝāĻŧā§ āĻā§āĻā§āĨ¤ While loop-āĻāϰ āĻāĻā§ āĻāĻāĻŦāĻžāϰ āĻĒāĻĄāĻŧā§, āĻāϰ āĻĒā§āϰāϤāĻŋāĻāĻž pass-āĻāϰ āĻļā§āώ āϞāĻžāĻāύ⧠āĻāĻŦāĻžāϰ āĻĒāĻĄāĻŧā§āĨ¤
ā§Ē. 0 āĻĨā§āĻā§ āĻļā§āϰ⧠āĻšāĻāϝāĻŧāĻž āĻāϞāϤāĻŋ minimumāĨ¤
const input = require("fs").readFileSync(0, "utf8");
const tokens = input.split(/\s+/).filter(Boolean);
let at = 0;
const next = () => tokens[at++];
const nextInt = () => Number(next());
const out = [];
const n = nextInt();
let coldest = 0;
for (let i = 0; i < n; i++) {
const t = nextInt();
if (t < coldest) {
coldest = t;
}
}
out.push("coldest " + coldest);
console.log(out.join("\n"));
coldest 0
Input 3 āĻāϰ 5 8 3āĨ¤ āĻā§āύ⧠reading-āĻ 0 āĻāĻŋāϞ āύāĻž, āϤāĻŦā§ 0 āĻāĻŋāϤ⧠āĻā§āϞ, āĻāĻžāϰāĻŖ āĻā§āĻ āĻāĻā§ āĻšāĻžāϰāĻžāϤ⧠āĻĒāĻžāϰā§āύāĻŋāĨ¤ 0-āĻāϰ āύāĻŋāĻā§āϰ āĻā§āύ⧠value āĻĨāĻžāĻāϞ⧠program āĻ āĻŋāĻāĻ āĻāϞā§, āĻāϰ āĻāĻāύā§āϝāĻ negative āϏāĻāĻā§āϝāĻžāĻāϝāĻŧāĻžāϞāĻž sample āĻā§āϞāĻāĻž āϞā§āĻāĻŋāϝāĻŧā§ āϰāĻžāĻā§āĨ¤ āĻāϞāϤāĻŋ minimum āĻŦāĻž maximum āĻļā§āϰ⧠āĻāϰ⧠āĻĒā§āϰāĻĨāĻŽ āĻĒāĻĄāĻŧāĻž value āĻĨā§āĻā§āĨ¤
Zara-āϰ step counter āĻĒā§āϰāϤāĻŋāĻĻāĻŋāύ āĻ āĻāϤ step āĻšāĻžāĻāĻāϞ āϏā§āĻāĻž āϞāĻŋāĻā§ āϰāĻžāĻā§, āĻāϰ āĻāϰ āϞāĻā§āώā§āϝ āĻĻāĻŋāύ⧠g stepāĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻž āĻĻāĻŋāύā§āϰ āĻāύā§āϝ āĻ āĻāĻžāύāϤ⧠āĻāĻžāϝāĻŧ āϞāĻā§āώā§āϝ āĻĒā§āϰāĻŖ āĻšāϞ⧠āĻāĻŋ āύāĻž, āĻāϰ āĻļā§āώ⧠āĻāĻžāύāϤ⧠āĻāĻžāϝāĻŧ āĻāϝāĻŧ āĻĻāĻŋāύ āĻšāϞā§āĨ¤ Input āĻĒāĻĄāĻŧā§ starter-āĻāϰ nextInt() āĻĻāĻŋāϝāĻŧā§āĨ¤
Input. āĻĒā§āϰāĻĨāĻŽ āϞāĻžāĻāύ⧠n āĻāϰ āϞāĻā§āώā§āϝ gāĨ¤ āĻĻā§āĻŦāĻŋāϤā§āϝāĻŧ āϞāĻžāĻāύ⧠n-āĻāĻž āĻĒā§āϰā§āĻŖāϏāĻāĻā§āϝāĻž: āĻā§āϰāĻŽ āĻ āύā§āϝāĻžāϝāĻŧā§ āĻĒā§āϰāϤāĻŋāĻĻāĻŋāύā§āϰ stepāĨ¤
Output. n + 1-āĻāĻž āϞāĻžāĻāύāĨ¤ āĻā§āϰāĻŽ āϧāϰ⧠āĻĒā§āϰāϤāĻŋāĻāĻž āĻĻāĻŋāύā§āϰ āĻāύā§āϝ print āĻāϰ⧠met, āϝāĻĻāĻŋ āĻāĻ āĻĻāĻŋāύā§āϰ step āĻāĻŽāĻĒāĻā§āώ⧠g āĻšāϝāĻŧ, āύāĻāϞ⧠shortāĨ¤ āĻļā§āώ āϞāĻžāĻāύ⧠āĻĨāĻžāĻāĻŦā§ āĻāϝāĻŧ āĻĻāĻŋāύ āϞāĻā§āώā§āϝ āĻĒā§āϰāĻŖ āĻšāϝāĻŧā§āĻā§āĨ¤
Constraints. 1 <= n <= 100000āĨ¤ 0 <= g <= 100000āĨ¤ 0 <= step <= 100000āĨ¤
Sample. Input 5 8000 āĻāϰ 7500 8000 12030 0 9100 āĻĻāĻŋāϞ⧠āĻāϝāĻŧ āϞāĻžāĻāύ⧠short, met, met, short, met āĻāϰ 3āĨ¤
const input = require("fs").readFileSync(0, "utf8");
const tokens = input.split(/\s+/).filter(Boolean);
let at = 0;
const next = () => tokens[at++];
const nextInt = () => Number(next());
const out = [];
// your code: read with next() and nextInt(), push every line of output to out
console.log(out.join("\n"));
Run in Compiler
Hint 1
āĻ āĻŋāĻ g step-āĻāϰ āĻāĻāĻāĻž āĻĻāĻŋāύā§āϰ āĻāύā§āϝ "āĻāĻŽāĻĒāĻā§āώā§" āĻŽāĻžāύ⧠āĻā§? āĻā§āύ āϤā§āϞāύāĻžāϰ operator āĻāĻāĻž āĻŦāϞā§?
Hint 2
āĻāĻā§ n āĻāϰ g āĻĒāĻĄāĻŧā§āĨ¤ āϤāĻžāϰāĻĒāϰ n āĻŦāĻžāϰ loop āĻāĻžāϞāĻžāĻ: āĻāĻāĻāĻž āĻĻāĻŋāύ āĻĒāĻĄāĻŧā§, āĻāĻāĻāĻž āĻļāĻŦā§āĻĻ push āĻāϰā§, āĻāϰ āϝ⧠āĻĻāĻŋāύāĻā§āϞ⧠āĻā§āύāĻžāϰ āĻŽāϤ⧠āϏā§āĻā§āϞā§āϤ⧠āĻāĻāĻāĻž counter-āĻ 1 āϝā§āĻ āĻāϰā§āĨ¤ Counter-āĻāĻž push āĻāϰ⧠āĻāĻāĻŦāĻžāϰāĻ, loop-āĻāϰ āĻĒāϰā§āĨ¤
Solution
n āĻŦāĻžāϰ āĻāϞāĻž āĻāĻāĻāĻž for loop āĻĒā§āϰāϤāĻŋāĻāĻž āĻĻāĻŋāύ nextInt() āĻĻāĻŋāϝāĻŧā§ āĻĒāĻĄāĻŧā§ āĻāϰ >= āĻĻāĻŋāϝāĻŧā§ āϤā§āϞāύāĻž āĻāϰā§, āϝā§āĻāĻž "āĻāĻŽāĻĒāĻā§āώā§"-āϰ operatorāĨ¤ āϞāĻā§āώā§āϝ āĻĒā§āϰāĻŖā§āϰ āĻĻāĻŋāύ push āĻāϰ⧠met āĻāϰ 0 āĻĨā§āĻā§ āĻļā§āϰ⧠āĻšāĻāϝāĻŧāĻž āĻāĻāĻāĻž counter-āĻ 1 āϝā§āĻ āĻāϰā§, āĻāϰ counter push āĻšāϝāĻŧ loop-āĻāϰ āĻĒāϰā§āĨ¤ g = 0 āĻšāϞ⧠āĻĒā§āϰāϤāĻŋāĻāĻž āĻĻāĻŋāύāĻ met, 0 step-āĻāϰ āĻĻāĻŋāύāĻāĨ¤
>=-āĻāϰ āĻāĻžāϝāĻŧāĻāĻžāϝāĻŧ > āϞāĻŋāĻāϞ⧠sample-āĻāϰ 8000 step-āĻāϰ āĻĻāĻŋāύāĻāĻž short āĻšāϝāĻŧā§ āϝāĻžāϝāĻŧ, āĻāϰ sample āϏā§āĻāĻž āϧāϰ⧠āĻĢā§āϞā§āĨ¤ Step-āĻā§āϞ⧠next() āĻĻāĻŋāϝāĻŧā§ āĻĒāĻĄāĻŧāϞ⧠text āĻŽā§āϞāĻžāύ⧠āĻšāϝāĻŧ, āĻāϰ "12030" >= "8000" false, āĻāĻžāϰāĻŖ "1" āĻāϏ⧠"8"-āĻāϰ āĻāĻā§āĨ¤ steps && steps >= g-āĻāϰ āĻŽāϤ⧠test āϞāĻā§āώā§āϝ 0 āĻšāϞā§āĻ 0 step-āĻāϰ āĻĻāĻŋāύāĻā§ short āĻŦāϞā§, āĻāϰ āĻāĻāĻāĻž hidden test āĻ āĻŋāĻ āĻāĻāĻžāĻ āĻāĻžāϞāĻžāϝāĻŧāĨ¤
Maria āĻāϰ āĻā§āϞāĻžāϏā§āϰ āĻĒāϰā§āĻā§āώāĻž 100-āĻāϰ āĻŽāϧā§āϝ⧠āύāĻŽā§āĻŦāϰ āĻĻāĻŋāϝāĻŧā§ āĻĻā§āĻā§, āϤāĻžāϰāĻĒāϰ āĻĒā§āϰāϤāĻŋāĻāĻž āύāĻŽā§āĻŦāϰāĻā§ āĻāĻāĻāĻž letter grade āĻŦāĻžāύāĻžāϝāĻŧāĨ¤ āĻāϝāĻŧā§āĻāĻāĻž āύāĻŽā§āĻŦāϰ āĻā§āϞ āĻāĻžāĻāĻĒ āĻšāϝāĻŧā§āĻā§, āϝā§āĻŽāύ 101 āĻŦāĻž -1, āĻāϰ āĻ āĻāĻžāϝāĻŧ āĻāĻā§āϞā§āĻā§ grade āύāĻž āĻĻāĻŋāϝāĻŧā§ āĻāϞāĻžāĻĻāĻž āĻāϰ⧠āĻāĻŋāĻšā§āύāĻŋāϤ āĻāϰāϤā§āĨ¤ Input āĻĒāĻĄāĻŧā§ starter-āĻāϰ nextInt() āĻĻāĻŋāϝāĻŧā§āĨ¤
Input. āĻĒā§āϰāĻĨāĻŽ āϞāĻžāĻāύ⧠nāĨ¤ āĻĻā§āĻŦāĻŋāϤā§āϝāĻŧ āϞāĻžāĻāύ⧠n-āĻāĻž āĻĒā§āϰā§āĻŖāϏāĻāĻā§āϝāĻž, āĻŽāĻžāύ⧠āύāĻŽā§āĻŦāϰāĻā§āϞā§āĨ¤
Output. n-āĻāĻž āϞāĻžāĻāύ, āĻĒā§āϰāϤāĻŋāĻāĻž āύāĻŽā§āĻŦāϰā§āϰ āĻāύā§āϝ āĻāĻāĻāĻž, input-āĻāϰ āĻā§āϰāĻŽā§āĨ¤ 90 āĻĨā§āĻā§ 100 āĻšāϞ⧠print āĻāϰ⧠A, 80 āĻĨā§āĻā§ 89 āĻšāϞ⧠B, 70 āĻĨā§āĻā§ 79 āĻšāϞ⧠CāĨ¤ 60 āĻĨā§āĻā§ 69 āĻšāϞ⧠D, āĻāϰ 0 āĻĨā§āĻā§ 59 āĻšāϞ⧠FāĨ¤ āύāĻŽā§āĻŦāϰ 0-āĻāϰ āύāĻŋāĻā§ āĻŦāĻž 100-āĻāϰ āĻāĻĒāϰ⧠āĻšāϞ⧠print āĻāϰ⧠invalidāĨ¤
Constraints. 1 <= n <= 100000āĨ¤ -1000 <= āύāĻŽā§āĻŦāϰ <= 1000āĨ¤
Sample. Input 7 āĻāϰ 95 89 70 65 59 101 -1 āĻĻāĻŋāϞ⧠āϏāĻžāϤ āϞāĻžāĻāύ⧠A, B, C, D, F, invalid āĻāϰ invalidāĨ¤
const input = require("fs").readFileSync(0, "utf8");
const tokens = input.split(/\s+/).filter(Boolean);
let at = 0;
const next = () => tokens[at++];
const nextInt = () => Number(next());
const out = [];
// your code: read with next() and nextInt(), push every line of output to out
console.log(out.join("\n"));
Run in Compiler
Hint 1
āϝ⧠test āĻāĻā§ āĻāϞā§, āϏā§-āĻ āϤāĻžāϰ āĻĒāϰā§āϰ āϏāĻŦāĻāĻŋāĻā§ āĻ āĻŋāĻ āĻāϰ⧠āĻĻā§āϝāĻŧāĨ¤ āĻĒā§āϰāĻĨāĻŽ test āϝāĻĻāĻŋ āĻāĻŋāĻā§āĻā§āϏ āĻāϰ⧠āύāĻŽā§āĻŦāϰ āĻāĻŽāĻĒāĻā§āώ⧠60 āĻāĻŋ āύāĻž, āϤāĻžāĻšāϞ⧠95-āĻāϰ āĻā§ āĻšāϝāĻŧ?
Hint 2
āĻāĻā§ invalid āύāĻŽā§āĻŦāϰāĻā§āϞ⧠āĻŦāĻžāĻĻ āĻĻāĻžāĻāĨ¤ āϤāĻžāϰāĻĒāϰ āĻāĻžāĻāĻā§āϞ⧠test āĻāϰ⧠āĻāĻĒāϰ āĻĨā§āĻā§ āύāĻŋāĻā§, A āĻāĻā§, āϝāĻžāϤ⧠āĻĒāϰā§āϰ āĻĒā§āϰāϤāĻŋāĻāĻž test-āĻāϰ āĻļā§āϧ⧠āύāĻŋāĻā§āϰ āĻāĻžāĻā§āϰ āύāĻŋāĻā§āϰ āĻŽāĻžāĻĨāĻžāĻāĻž āϞāĻžāĻā§āĨ¤
Solution
if āĻāϰ else if chain āĻĒā§āϰāĻĨāĻŽ true āĻļāϰā§āϤ⧠āĻĨā§āĻŽā§ āϝāĻžāϝāĻŧāĨ¤ 0-āĻāϰ āύāĻŋāĻā§āϰ āĻāϰ 100-āĻāϰ āĻāĻĒāϰā§āϰ āύāĻŽā§āĻŦāϰ āĻŦāĻžāĻĻ āĻā§āϞ⧠mark >= 90 āĻŽāĻžāύ⧠āĻā§āĻŦāϞ 90 āĻĨā§āĻā§ 100āĨ¤ āĻĒāϰā§āϰ test mark >= 80 āĻŽāĻžāύ⧠āĻā§āĻŦāϞ 80 āĻĨā§āĻā§ 89, āĻāĻžāϰāĻŖ 90 āĻāϰ āϤāĻžāϰ āĻāĻĒāϰā§āϰ āύāĻŽā§āĻŦāϰ āĻāĻāĻžāύ⧠āĻĒā§āĻāĻāĻžāϝāĻŧāĻ āύāĻžāĨ¤ āĻāĻŽāύ āĻāĻžāϰāĻāĻž test āĻāϰ F-āĻāϰ āĻāύā§āϝ āĻļā§āώ⧠āĻāĻāĻāĻž else āĻĒā§āϰāϤāĻŋāĻāĻž āĻŦā§āϧ āύāĻŽā§āĻŦāϰ āϏāĻžāĻŽāϞāĻžāϝāĻŧāĨ¤
>=-āĻāϰ āĻāĻžāϝāĻŧāĻāĻžāϝāĻŧ > āĻĻāĻŋāϞ⧠āϏā§āĻŽāĻžāϰ āĻĒā§āϰāϤāĻŋāĻāĻž āύāĻŽā§āĻŦāϰ āĻāĻ letter āύāĻŋāĻā§ āύā§āĻŽā§ āϝāĻžāϝāĻŧ, āϤāĻžāĻ 70 āĻšāϝāĻŧā§ āϝāĻžāϝāĻŧ D āĻāϰ sample āĻĢā§āϞ āĻāϰā§āĨ¤ Invalid test āĻšāĻŋāϏā§āĻŦā§ mark >= 100 āϞāĻŋāĻāϞ⧠āĻĒā§āϰ⧠100 āĻšāϝāĻŧā§ āϝāĻžāϝāĻŧ invalid, āĻāϰ mark <= 0 āĻāĻāĻ āĻāĻžāĻ āĻāϰ⧠0-āĻāϰ āϏāĻžāĻĨā§; hidden test āĻĻā§āĻ āĻŽāĻžāĻĨāĻžāĻ āĻāĻžāϞāĻžāϝāĻŧāĨ¤ āύāĻŋāĻ āĻĨā§āĻā§ āĻāĻĒāϰ⧠āϞā§āĻāĻž chain, āĻŽāĻžāύ⧠60-āĻāϰ test āĻāĻā§, 60 āĻĨā§āĻā§ 100-āĻāϰ āĻĒā§āϰāϤāĻŋāĻāĻž āύāĻŽā§āĻŦāϰā§āϰ āĻāύā§āϝ print āĻāϰ⧠DāĨ¤
David-āĻāϰ calendar app āĻāĻāĻāĻž āĻĻāĻŋāύāĻā§ āϰāĻžāĻā§ āĻāĻāĻāĻž āϏāĻāĻā§āϝāĻž āĻšāĻŋāϏā§āĻŦā§: 1 āĻŽāĻžāύ⧠Monday āĻāϰ 7 āĻŽāĻžāύ⧠SundayāĨ¤ āĻ āĻĒā§āϰāϤāĻŋāĻāĻž āĻĻāĻŋāύā§āϰ āύāĻžāĻŽ āĻāĻžāϝāĻŧ, āĻĻāĻŋāύāĻāĻž weekend āĻāĻŋ āύāĻž āĻāĻžāύāϤ⧠āĻāĻžāϝāĻŧ, āĻāϰ 1 āĻĨā§āĻā§ 7-āĻāϰ āĻŦāĻžāĻāϰā§āϰ āϏāĻāĻā§āϝāĻžāĻā§ bug āĻšāĻŋāϏā§āĻŦā§ āĻāĻŋāĻšā§āύāĻŋāϤ āĻāϰāϤ⧠āĻāĻžāϝāĻŧāĨ¤ Input āĻĒāĻĄāĻŧā§ starter-āĻāϰ nextInt() āĻĻāĻŋāϝāĻŧā§āĨ¤
Input. āĻĒā§āϰāĻĨāĻŽ āϞāĻžāĻāύ⧠nāĨ¤ āĻĻā§āĻŦāĻŋāϤā§āϝāĻŧ āϞāĻžāĻāύ⧠n-āĻāĻž āĻĒā§āϰā§āĻŖāϏāĻāĻā§āϝāĻžāĨ¤
Output. n-āĻāĻž āϞāĻžāĻāύ, āĻĒā§āϰāϤāĻŋāĻāĻž āϏāĻāĻā§āϝāĻžāϰ āĻāύā§āϝ āĻāĻāĻāĻž, input-āĻāϰ āĻā§āϰāĻŽā§: āĻĻāĻŋāύā§āϰ āĻāĻāϰā§āĻāĻŋ āύāĻžāĻŽ, āĻāĻāĻāĻž space, āϤāĻžāϰāĻĒāϰ 1 āĻĨā§āĻā§ 5 āĻšāϞ⧠weekday āĻāϰ 6 āĻŦāĻž 7 āĻšāϞ⧠weekendāĨ¤ āĻ
āύā§āϝ āϝā§āĻā§āύ⧠āϏāĻāĻā§āϝāĻžāϰ āĻāύā§āϝ print āĻāϰ⧠invalidāĨ¤ āύāĻžāĻŽāĻā§āϞ⧠āĻšāϞ⧠Monday, Tuesday, Wednesday, Thursday, Friday, Saturday āĻāϰ SundayāĨ¤
Constraints. 1 <= n <= 100000āĨ¤ -1000 <= āĻĒā§āϰāϤāĻŋāĻāĻž āϏāĻāĻā§āϝāĻž <= 1000āĨ¤
Sample. Input 4 āĻāϰ 1 6 7 9 āĻĻāĻŋāϞ⧠āĻāĻžāϰ āϞāĻžāĻāύ⧠Monday weekday, Saturday weekend, Sunday weekend āĻāϰ invalidāĨ¤
const input = require("fs").readFileSync(0, "utf8");
const tokens = input.split(/\s+/).filter(Boolean);
let at = 0;
const next = () => tokens[at++];
const nextInt = () => Number(next());
const out = [];
// your code: read with next() and nextInt(), push every line of output to out
console.log(out.join("\n"));
Run in Compiler
Hint 1
āϏāĻžāϤāĻāĻž āĻĻāĻŋāύā§āϰ āĻĻā§āĻā§āϰ āĻĻā§āĻŦāĻŋāϤā§āϝāĻŧ āĻļāĻŦā§āĻĻ āĻāĻāĻāĨ¤ āĻāĻāĻāĻž switch-āĻāϰ āĻĻā§āĻā§ case āĻāĻŋ āĻāĻāĻāĻž body āĻāĻžāĻāĻžāĻāĻžāĻāĻŋ āĻāϰāϤ⧠āĻĒāĻžāϰā§?
Hint 2
āϏāĻāĻā§āϝāĻžāĻāĻžāϰ āĻāĻĒāϰ switch āĻāϰā§āĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻž weekday-āϰ case āύāĻŋāĻā§āϰ āύāĻžāĻŽ āĻŦāϏāĻžāϝāĻŧ āĻāϰ āĻāĻāĻāĻž break āĻĻāĻŋāϝāĻŧā§ āĻļā§āώ āĻšāϝāĻŧāĨ¤ Weekend-āĻāϰ āĻĻā§āĻā§ case āĻāĻāĻāĻžāϰ āύāĻŋāĻā§ āĻāϰā§āĻāĻāĻž āĻŦāϏā§, āĻāĻāĻāĻžāĻ body āύāĻŋāϝāĻŧā§, āĻāϰ default case āϧāϰ⧠āĻāĻŽāύ āĻĒā§āϰāϤāĻŋāĻāĻž āϏāĻāĻā§āϝāĻž āϝā§āĻāĻž āĻā§āύ⧠āĻĻāĻŋāύ āύāĻžāĨ¤
Kenji-āϰ āĻĻā§āĻāĻžāύā§āϰ scanner āϏāĻžāϰāĻžāĻĻāĻŋāύā§āϰ āĻĻāĻžāĻŽā§āϰ āĻāĻ āĻžāύāĻžāĻŽāĻž āĻĒāĻžāĻ āĻžāϝāĻŧ āĻāĻāĻāĻžāϰ āĻĒāϰ āĻāĻāĻāĻž āϏāĻāĻā§āϝāĻž āĻšāĻŋāϏā§āĻŦā§, āĻāϰ āĻāĻāĻāĻž 0 āĻĻāĻŋāϝāĻŧā§ āĻŦā§āĻāĻžāϝāĻŧ āϤāĻžāϞāĻŋāĻāĻž āĻļā§āώāĨ¤ 0-āĻāϰ āĻĒāϰā§āĻ scanner āĻšāĻžāĻŦāĻŋāĻāĻžāĻŦāĻŋ āĻĒāĻžāĻ āĻžāϤ⧠āĻĨāĻžāĻā§, āĻāϰ Kenji-āĻā§ āϏā§āĻā§āϞ⧠āĻŦāĻžāĻĻ āĻĻāĻŋāϤ⧠āĻšāϝāĻŧāĨ¤ Input āĻĒāĻĄāĻŧā§ starter-āĻāϰ nextInt() āĻĻāĻŋāϝāĻŧā§āĨ¤
Input. Space āĻŦāĻž line break āĻĻāĻŋāϝāĻŧā§ āĻāϞāĻžāĻĻāĻž āĻāϰāĻž āĻāĻŋāĻā§ āĻĒā§āϰā§āĻŖāϏāĻāĻā§āϝāĻžāĨ¤ āϤāĻžāϞāĻŋāĻāĻž āĻļā§āώ āĻšāϝāĻŧ āĻĒā§āϰāĻĨāĻŽ 0-āϤā§, āĻāĻ 0 āϤāĻžāϞāĻŋāĻāĻžāϰ āĻ āĻāĻļ āύāĻž, āĻāϰ āĻāϰ āĻĒāϰ⧠āϝāĻž āĻāĻā§ āϏāĻŦ āĻŦāĻžāĻĻāĨ¤ āĻ āύā§āϤāϤ āĻāĻāĻāĻž 0 āϏāĻŦāϏāĻŽāϝāĻŧ āĻĨāĻžāĻā§āĨ¤
Output. āĻĻā§āĻ āϞāĻžāĻāύ: āĻĒā§āϰāĻĨāĻŽ 0-āĻāϰ āĻāĻā§ āĻāϝāĻŧāĻāĻž āϏāĻāĻā§āϝāĻž āĻāϏā§āĻā§, āĻāϰ āĻāĻĻā§āϰ āϝā§āĻāĻĢāϞāĨ¤
Constraints. āĻĒā§āϰāĻĨāĻŽ 0-āĻāϰ āĻāĻā§ āϏāϰā§āĻŦā§āĻā§āĻ 100000āĻāĻž āϏāĻāĻā§āϝāĻžāĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻž āϏāĻāĻā§āϝāĻž -1000000 āĻĨā§āĻā§ 1000000-āĻāϰ āĻŽāϧā§āϝā§āĨ¤
Sample. Input 5 -2 7 0 4 4 āĻĻāĻŋāϞ⧠āĻĻā§āĻ āϞāĻžāĻāύ⧠3 āĻāϰ 10āĨ¤
const input = require("fs").readFileSync(0, "utf8");
const tokens = input.split(/\s+/).filter(Boolean);
let at = 0;
const next = () => tokens[at++];
const nextInt = () => Number(next());
const out = [];
// your code: read with next() and nextInt(), push every line of output to out
console.log(out.join("\n"));
Run in Compiler
Hint 1
āĻāϝāĻŧāĻāĻž āϏāĻāĻā§āϝāĻž āĻāϏāĻŦā§ āϤā§āĻŽāĻŋ āĻāĻžāύ⧠āύāĻžāĨ¤ āϤāĻžāϞāĻŋāĻāĻž āϝ⧠āĻļā§āώ, āϏā§āĻāĻž āĻŦāϞ⧠āĻā§, āĻāϰ āϏā§āĻ āϏāĻāĻā§āϝāĻžāĻāĻž āĻāĻŋ āϤāĻžāϞāĻŋāĻāĻžāϰ āĻ āĻāĻļ?
Hint 2
Loop-āĻāϰ āĻāĻā§ āĻāĻāĻāĻž āϏāĻāĻā§āϝāĻž āĻĒāĻĄāĻŧā§āĨ¤ āϏāĻāĻā§āϝāĻžāĻāĻž āĻļā§āώā§āϰ āĻāĻŋāĻšā§āύ āύāĻž āĻšāĻāϝāĻŧāĻž āĻĒāϰā§āϝāύā§āϤ loop āĻāϞā§āĻāĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻž pass-āĻ āĻāĻāĻžāĻā§ āĻā§āύā§, āϝā§āĻ āĻāϰā§, āĻāϰ āĻļā§āώ āϧāĻžāĻĒā§ āĻĒāϰā§āϰ āϏāĻāĻā§āϝāĻžāĻāĻž āĻĒāĻĄāĻŧā§āĨ¤
Alice āĻāϰ āĻĒā§āϰāĻĨāĻŽ interview-āĻāϰ āĻāύā§āϝ āϤā§āϰāĻŋ āĻšāĻā§āĻā§, āĻāϰ āϏā§āĻāĻžāύ⧠āĻļā§āϰā§āϰ āĻĒā§āϰāĻļā§āύāĻāĻžāĻ FizzBuzzāĨ¤ āĻ 1 āĻĨā§āĻā§ n āĻĒāϰā§āϝāύā§āϤ āĻā§āύā§, āĻāĻŋāύā§āϤ⧠āĻāĻŋāĻā§ āϏāĻāĻā§āϝāĻžāϰ āĻāĻžāϝāĻŧāĻāĻžāϝāĻŧ āĻļāĻŦā§āĻĻ āĻŦāϏāĻžāϝāĻŧāĨ¤ n āĻĒāĻĄāĻŧā§ starter-āĻāϰ nextInt() āĻĻāĻŋāϝāĻŧā§āĨ¤
Input. āĻāĻ āϞāĻžāĻāύ⧠nāĨ¤
Output. n-āĻāĻž āϞāĻžāĻāύ, 1 āĻĨā§āĻā§ n āĻĒāϰā§āϝāύā§āϤ āĻĒā§āϰāϤāĻŋāĻāĻž i-āĻāϰ āĻāύā§āϝ āĻāĻāĻāĻžāĨ¤ i āϝāĻĻāĻŋ 3 āĻāϰ 5 āĻĻā§āĻā§āϰāĻ āĻā§āĻŖāĻŋāϤāĻ āĻšāϝāĻŧ, print āĻāϰ⧠FizzBuzzāĨ¤ āĻļā§āϧ⧠3-āĻāϰ āĻā§āĻŖāĻŋāϤāĻ āĻšāϞ⧠Fizz, āĻāϰ āĻļā§āϧ⧠5-āĻāϰ āĻā§āĻŖāĻŋāϤāĻ āĻšāϞ⧠BuzzāĨ¤ āύāĻāϞ⧠print āĻāϰ⧠āϏāĻāĻā§āϝāĻž i āύāĻŋāĻā§āĻāĨ¤
Constraints. 1 <= n <= 100000āĨ¤
Sample. Input 15 āĻĻāĻŋāϞ⧠āĻĒāύā§āϰ⧠āϞāĻžāĻāύ⧠1, 2, Fizz, 4, Buzz, Fizz, 7, 8, Fizz, Buzz, 11, Fizz, 13, 14 āĻāϰ FizzBuzzāĨ¤
const input = require("fs").readFileSync(0, "utf8");
const tokens = input.split(/\s+/).filter(Boolean);
let at = 0;
const next = () => tokens[at++];
const nextInt = () => Number(next());
const out = [];
// your code: read with next() and nextInt(), push every line of output to out
console.log(out.join("\n"));
Run in Compiler
Hint 1
15 āĻšāϞ⧠3-āĻāϰ āĻā§āĻŖāĻŋāϤāĻāĨ¤ if āĻāϰ else if chain-āĻ 3-āĻāϰ test āĻāĻā§ āĻĨāĻžāĻāϞ⧠15 āĻĒā§āϰāĻĨāĻŽā§ āĻā§āύ test-āĻ āĻāĻāĻāĻžāϝāĻŧ?
Hint 2
i āĻā§āύ⧠1 āĻĨā§āĻā§ n āĻĒāϰā§āϝāύā§āϤ, āĻĻā§āĻ āĻŽāĻžāĻĨāĻžāĻ āϏāĻšāĨ¤ āĻāĻā§ 15-āĻāϰ āĻā§āĻŖāĻŋāϤāĻ āĻāĻŋ āύāĻž āĻĻā§āĻā§, āϤāĻžāϰāĻĒāϰ 3-āĻāϰ, āϤāĻžāϰāĻĒāϰ 5-āĻāϰ, āĻāϰ āϤāĻŋāύāĻāĻžāϰ āĻāĻāĻāĻžāĻ true āύāĻž āĻšāϞ⧠i āύāĻŋāĻā§āĻā§āĻ push āĻāϰā§āĨ¤
Solution
i % 3 === 0 true āĻšāϝāĻŧ āϝāĻāύ 3 āĻĻāĻŋāϝāĻŧā§ i āĻāĻžāĻ āĻāϰāϞ⧠āĻāĻŋāĻā§āĻ āĻŦāĻžāĻāĻŋ āĻĨāĻžāĻā§ āύāĻžāĨ¤ āϝ⧠āϏāĻāĻā§āϝāĻž 3 āĻāϰ 5 āĻĻā§āĻā§ āĻĻāĻŋāϝāĻŧā§āĻ āĻāĻžāĻ āϝāĻžāϝāĻŧ, āϏā§āĻāĻž 15 āĻĻāĻŋāϝāĻŧā§āĻ āĻāĻžāĻ āϝāĻžāϝāĻŧāĨ¤ āϤāĻžāĻ 15-āĻāϰ test āĻāĻā§ āĻāϏāϤā§āĻ āĻšāĻŦā§, āύāĻāϞ⧠3-āĻāϰ test 15-āĻā§ āϧāϰ⧠push āĻāϰ⧠āĻĻā§āϝāĻŧ FizzāĨ¤ Loop āĻļā§āϰ⧠āĻšāϝāĻŧ 1 āĻĨā§āĻā§ āĻāϰ n-āĻ āϧāϰā§, āϤāĻžāĻ āĻ āĻŋāĻ n āĻŦāĻžāϰ āĻāϞā§, āĻāϰ i āύāĻŋāĻā§āĻā§ push āĻāϰāϞā§āĻ āĻāϞā§, āĻāĻžāϰāĻŖ out.join āĻāĻāĻžāĻā§ text āĻŦāĻžāύāĻžāϝāĻŧāĨ¤
15-āĻāϰ test āĻļā§āώ⧠āĻĨāĻžāĻāϞ⧠sample-āĻāϰ āϞāĻžāĻāύ 15 print āĻāϰ⧠FizzāĨ¤ i < n āĻĻā§āĻāϝāĻŧāĻž loop āĻāĻ āϞāĻžāĻāύ āĻāĻā§ āĻĨā§āĻŽā§ āϝāĻžāϝāĻŧ, āĻāϰ 0 āĻĨā§āĻā§ āĻļā§āϰ⧠āĻšāĻāϝāĻŧāĻž loop āĻĒā§āϰāĻĨāĻŽā§āĻ print āĻāϰ⧠FizzBuzz, āĻāĻžāϰāĻŖ 0 āĻĒā§āϰāϤāĻŋāĻāĻž āϏāĻāĻā§āϝāĻžāϰ āĻā§āĻŖāĻŋāϤāĻāĨ¤ āϏāĻŦāĻā§āϝāĻŧā§ āĻŦāĻĄāĻŧ hidden test 100000āĻāĻž āϞāĻžāĻāύ āĻāĻžāϝāĻŧ, āϝā§āĻāĻž starter-āĻāϰ āĻāĻāĻāĻžāĻ console.log local machine-āĻ āĻŽā§āĻāĻžāĻŽā§āĻāĻŋ āĻāĻ āϏā§āĻā§āύā§āĻĄā§āϰ āĻĻāĻļ āĻāĻžāĻā§āϰ āĻāĻ āĻāĻžāĻā§ print āĻāϰā§āĨ¤
Amara-āϰ program āĻāĻāĻāĻž sensor-āĻāϰ reading-āĻā§āϞ⧠āĻāĻāĻŦāĻžāϰāĻ āĻĒāĻĄāĻŧā§, āĻāĻ pass-āĻāĨ¤ āĻ āĻāĻĻā§āϰ āϏāĻŽā§āĻĒāϰā§āĻā§ āĻāĻžāϰāĻāĻž āϤāĻĨā§āϝ āĻāĻžāϝāĻŧ: āĻāϝāĻŧāĻāĻž āĻāĻā§, āϏāĻŦāĻā§āϝāĻŧā§ āĻā§āĻāĻāĻž, āϏāĻŦāĻā§āϝāĻŧā§ āĻŦāĻĄāĻŧāĻāĻž āĻāϰ āĻāĻĄāĻŧāĨ¤ Input āĻĒāĻĄāĻŧā§ starter-āĻāϰ nextInt() āĻĻāĻŋāϝāĻŧā§āĨ¤
Input. āĻĒā§āϰāĻĨāĻŽ āϞāĻžāĻāύ⧠nāĨ¤ āĻĻā§āĻŦāĻŋāϤā§āϝāĻŧ āϞāĻžāĻāύ⧠n-āĻāĻž āĻĒā§āϰā§āĻŖāϏāĻāĻā§āϝāĻžāĨ¤
Output. āĻāĻžāϰ āϞāĻžāĻāύāĨ¤ āϞāĻžāĻāύ 1 āĻšāϞ⧠count, āĻāĻāĻāĻž space āĻāϰ nāĨ¤ āϞāĻžāĻāύ 2 āĻšāϞ⧠min, āĻāĻāĻāĻž space āĻāϰ āϏāĻŦāĻā§āϝāĻŧā§ āĻā§āĻ āϏāĻāĻā§āϝāĻž, āĻāϰ āϞāĻžāĻāύ 3 āĻšāϞ⧠max, āĻāĻāĻāĻž space āĻāϰ āϏāĻŦāĻā§āϝāĻŧā§ āĻŦāĻĄāĻŧāĻāĻžāĨ¤ āϞāĻžāĻāύ 4 āĻšāϞ⧠average, āĻāĻāĻāĻž space āĻāϰ āϝā§āĻāĻĢāϞāĻā§ n āĻĻāĻŋāϝāĻŧā§ āĻāĻžāĻ āĻāϰāĻž āĻĢāϞ, JavaScript āϝā§āĻāĻžāĻŦā§ number print āĻāϰ⧠āϏā§āĻāĻžāĻŦā§ (String() āϝāĻž āĻĻā§āϝāĻŧ)āĨ¤
Constraints. 1 <= n <= 100000āĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻž āϏāĻāĻā§āϝāĻž -1000000000 āĻĨā§āĻā§ 1000000000-āĻāϰ āĻŽāϧā§āϝā§, āϤāĻžāĻ āϝā§āĻāĻĢāϞ āĻāĻāĻāĻž āύāĻŋāĻā§āĻāϤ āĻĒā§āϰā§āĻŖāϏāĻāĻā§āϝāĻž āĻĨāĻžāĻā§āĨ¤
Sample. Input 5 āĻāϰ 4 -3 12 7 1 āĻĻāĻŋāϞ⧠āĻāĻžāϰ āϞāĻžāĻāύ⧠count 5, min -3, max 12 āĻāϰ average 4.2āĨ¤
const input = require("fs").readFileSync(0, "utf8");
const tokens = input.split(/\s+/).filter(Boolean);
let at = 0;
const next = () => tokens[at++];
const nextInt = () => Number(next());
const out = [];
// your code: read with next() and nextInt(), push every line of output to out
console.log(out.join("\n"));
Run in Compiler
Hint 1
āϏāĻŦ āϏāĻāĻā§āϝāĻž positive āĻšāϞā§, 0 āĻĨā§āĻā§ āĻļā§āϰ⧠āĻšāĻāϝāĻŧāĻž āĻāϞāϤāĻŋ minimum āĻā§ āĻŦāϞā§? āĻāϰ āϏāĻŦ āϏāĻāĻā§āϝāĻž negative āĻšāϞā§, 0 āĻĨā§āĻā§ āĻļā§āϰ⧠āĻšāĻāϝāĻŧāĻž āĻāϞāϤāĻŋ maximum?
Hint 2
āĻĒā§āϰāĻĨāĻŽ āϏāĻāĻā§āϝāĻžāĻāĻžāĻā§āĻ minimum, maximum āĻāϰ āϝā§āĻāĻĢāϞā§āϰ āĻļā§āϰ⧠āϧāϰā§āĨ¤ āϤāĻžāϰāĻĒāϰ āĻŦāĻžāĻāĻŋ n - 1-āĻāĻž āϏāĻāĻā§āϝāĻžāϰ āĻāĻĒāϰ loop āĻāĻžāϞāĻžāĻ, āĻāϰ āĻāĻāĻ pass-āĻ āϤāĻŋāύāĻāĻžāĻ update āĻāϰā§āĨ¤
Bob āĻāĻāĻāĻž program-āĻāϰ āϏāĻžāĻĨā§ āϏāĻāĻā§āϝāĻž āĻāύā§āĻĻāĻžāĻā§āϰ āĻā§āϞāĻž āĻā§āϞā§, āĻāϰ program-āĻāĻž āĻāĻāĻāĻž āĻā§āĻĒāύ āϏāĻāĻā§āϝāĻž āĻāĻžāύā§āĨ¤ Bob-āĻāϰ āĻāύā§āĻĻāĻžāĻ āĻāϏ⧠āĻāĻāĻāĻžāϰ āĻĒāϰ āĻāĻāĻāĻž, āϝāϤāĻā§āώāĻŖ āύāĻž āĻŽā§āϞ⧠āĻŦāĻž āĻĢā§āϰāĻŋāϝāĻŧā§ āϝāĻžāϝāĻŧ, āĻāϰ āĻĒā§āϰāϤāĻŋāĻāĻž āĻā§āϞ āĻāύā§āĻĻāĻžāĻā§āϰ āĻĒāϰ⧠program āĻŦāϞ⧠higher āύāĻž lowerāĨ¤ Input āĻĒāĻĄāĻŧā§ starter-āĻāϰ nextInt() āĻāϰ next() āĻĻāĻŋāϝāĻŧā§āĨ¤
Input. āĻĒā§āϰāĻĨāĻŽ āϏāĻāĻā§āϝāĻžāĻāĻž āĻā§āĻĒāύ āϏāĻāĻā§āϝāĻž sāĨ¤ āϤāĻžāϰāĻĒāϰ āĻāϏ⧠āĻāύā§āĻĻāĻžāĻāĻā§āϞā§, space āĻŦāĻž line break āĻĻāĻŋāϝāĻŧā§ āĻāϞāĻžāĻĻāĻž, input āĻļā§āώ āύāĻž āĻšāĻāϝāĻŧāĻž āĻĒāϰā§āϝāύā§āϤāĨ¤ āĻāĻāĻāĻž āĻāύā§āĻĻāĻžāĻāĻ āύāĻž āĻĨāĻžāĻāϤ⧠āĻĒāĻžāϰā§āĨ¤
Output. āĻā§āϰāĻŽ āϧāϰ⧠āĻĒā§āϰāϤāĻŋāĻāĻž āĻāύā§āĻĻāĻžāĻā§āϰ āĻāύā§āϝ āĻāĻ āϞāĻžāĻāύāĨ¤ āĻāύā§āĻĻāĻžāĻāĻāĻž āĻā§āĻĒāύ āϏāĻāĻā§āϝāĻž āĻšāϞ⧠print āĻāϰ⧠correct in k, āϝā§āĻāĻžāύ⧠k āĻšāϞ⧠āĻ āĻĒāϰā§āϝāύā§āϤ āĻĒāĻĄāĻŧāĻž āĻāύā§āĻĻāĻžāĻā§āϰ āϏāĻāĻā§āϝāĻž, āĻāĻāĻž āϏāĻš; āϤāĻžāϰāĻĒāϰ āĻĨāĻžāĻŽā§, āĻāϰ āĻĒāϰā§āϰ āϏāĻŦ āĻāύā§āĻĻāĻžāĻ āĻŦāĻžāĻĻāĨ¤ āĻā§āĻĒāύ āϏāĻāĻā§āϝāĻž āĻāύā§āĻĻāĻžāĻā§āϰ āĻā§āϝāĻŧā§ āĻŦāĻĄāĻŧ āĻšāϞ⧠print āĻāϰ⧠higher, āĻā§āĻ āĻšāϞ⧠lowerāĨ¤ āĻ āĻŋāĻ āĻāύā§āĻĻāĻžāĻ āĻāĻžāĻĄāĻŧāĻžāĻ input āĻļā§āώ āĻšāϞ⧠print āĻāϰ⧠not found after k, āϝā§āĻāĻžāύ⧠k āĻšāϞ⧠āĻĒāĻĄāĻŧāĻž āĻāύā§āĻĻāĻžāĻā§āϰ āϏāĻāĻā§āϝāĻž, 0-āĻ āĻšāϤ⧠āĻĒāĻžāϰā§āĨ¤
Constraints. 1 <= s <= 1000000000āĨ¤ āϏāϰā§āĻŦā§āĻā§āĻ 100000āĻāĻž āĻāύā§āĻĻāĻžāĻ, āĻĒā§āϰāϤāĻŋāĻāĻž 1 āĻĨā§āĻā§ 1000000000āĨ¤
Sample. Input 50 āĻāϰ 25 75 50 10 āĻĻāĻŋāϞ⧠āϤāĻŋāύ āϞāĻžāĻāύ⧠higher, lower āĻāϰ correct in 3āĨ¤
const input = require("fs").readFileSync(0, "utf8");
const tokens = input.split(/\s+/).filter(Boolean);
let at = 0;
const next = () => tokens[at++];
const nextInt = () => Number(next());
const out = [];
// your code: read with next() and nextInt(), push every line of output to out
console.log(out.join("\n"));
Run in Compiler
Hint 1
āĻāύā§āĻĻāĻžāĻ āϝ⧠āĻļā§āώ, āϤā§āĻŽāĻžāϰ program āϏā§āĻāĻž āĻŦā§āĻā§ āĻā§āĻāĻžāĻŦā§? Token āĻĢā§āϰāĻŋāϝāĻŧā§ āĻā§āϞ⧠next() āĻā§ āĻĻā§āϝāĻŧ?
Hint 2
āĻā§āĻĒāύ āϏāĻāĻā§āϝāĻž āĻĒāĻĄāĻŧā§, āϤāĻžāϰāĻĒāϰ āĻāĻāĻāĻž while loop-āĻ āĻāύā§āĻĻāĻžāĻ āĻĒāĻĄāĻŧā§, āϝāϤāĻā§āώāĻŖ āύāĻž token āĻšāϝāĻŧ undefinedāĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻž āĻāύā§āĻĻāĻžāĻ āĻĒāĻĄāĻŧāĻžāϰ āϏāĻžāĻĨā§ āϏāĻžāĻĨā§ āĻā§āύā§āĨ¤ āĻ āĻŋāĻ āĻāύā§āĻĻāĻžāĻā§ āϞāĻžāĻāύāĻāĻž push āĻāϰā§, āϏāĻžāĻĨā§ āϏāĻžāĻĨā§ loop āĻĨā§āĻā§ āĻŦā§āϰ āĻšāĻ, āĻāϰ āĻŽāύ⧠āϰāĻžāĻā§ āϝ⧠āĻĒā§āϝāĻŧā§ āĻā§āĻāĨ¤
Kenji-āϰ āĻĻā§āĻāĻžāύā§āϰ till input āĻļā§āώ āύāĻž āĻšāĻāϝāĻŧāĻž āĻĒāϰā§āϝāύā§āϤ command āĻĒāĻĄāĻŧā§āĨ¤ āĻ āĻāĻāĻāĻž āĻāϞāϤāĻŋ āĻŽā§āĻ āϰāĻžāĻā§, āϝā§āĻāĻž āĻļā§āϰ⧠āĻšāϝāĻŧ 0 āĻĨā§āĻā§ āĻāϰ 0-āĻāϰ āύāĻŋāĻā§āĻ āύāĻžāĻŽāϤ⧠āĻĒāĻžāϰā§āĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻž command-āĻāϰ āĻļāĻŦā§āĻĻ āĻĒāĻĄāĻŧā§ starter-āĻāϰ next() āĻĻāĻŋāϝāĻŧā§, āĻāϰ āĻĒā§āϰāϤāĻŋāĻāĻž amount nextInt() āĻĻāĻŋāϝāĻŧā§āĨ¤
Input. Space āĻŦāĻž line break āĻĻāĻŋāϝāĻŧā§ āĻāϞāĻžāĻĻāĻž āĻāϰāĻž command, input āĻļā§āώ āύāĻž āĻšāĻāϝāĻŧāĻž āĻĒāϰā§āϝāύā§āϤāĨ¤ sale x āĻŽā§āĻā§āϰ āϏāĻžāĻĨā§ x āϝā§āĻ āĻāϰā§, āĻāϰ refund x āĻŽā§āĻ āĻĨā§āĻā§ x āĻŦāĻžāĻĻ āĻĻā§āϝāĻŧāĨ¤ total āĻŽā§āĻāĻāĻž print āĻāϰā§, āĻāϰ close āĻŽā§āĻāĻāĻž print āĻāϰ⧠run āĻļā§āώ āĻāϰ⧠āĻĻā§āϝāĻŧāĨ¤ āĻ
āύā§āϝ āϝā§āĻā§āύ⧠āĻļāĻŦā§āĻĻ āĻāĻāĻāĻž āĻ
āĻā§āύāĻž command, āϝāĻžāϰ āĻĒāϰ⧠āĻā§āύ⧠amount āĻĨāĻžāĻā§ āύāĻžāĨ¤
Output. total-āĻāϰ āĻāύā§āϝ print āĻāϰ⧠total, āĻāĻāĻāĻž space āĻāϰ āĻŽā§āĻāĻāĻžāĨ¤ close-āĻāϰ āĻāύā§āϝ print āĻāϰ⧠closed, āĻāĻāĻāĻž space āĻāϰ āĻŽā§āĻāĻāĻž; āĻāϰ āĻĒāϰā§āϰ āϏāĻŦ command āĻŦāĻžāĻĻāĨ¤ āĻ
āĻā§āύāĻž āĻļāĻŦā§āĻĻā§āϰ āĻāύā§āϝ print āĻāϰ⧠unknown, āĻāĻāĻāĻž space āĻāϰ āĻļāĻŦā§āĻĻāĻāĻžāĨ¤ close āĻāĻžāĻĄāĻŧāĻžāĻ input āĻļā§āώ āĻšāϞ⧠āĻļā§āώ āϞāĻžāĻāύ⧠print āĻāϰ⧠no closeāĨ¤
Constraints. āϏāϰā§āĻŦā§āĻā§āĻ 100000āĻāĻž commandāĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻž amount 1 āĻĨā§āĻā§ 1000000-āĻāϰ āĻāĻāĻāĻž āĻĒā§āϰā§āĻŖāϏāĻāĻā§āϝāĻžāĨ¤ Command-āĻāϰ āĻļāĻŦā§āĻĻā§ āĻļā§āϧ⧠āĻā§āĻ āĻšāĻžāϤā§āϰ āĻ āĻā§āώāϰ āĻĨāĻžāĻā§āĨ¤
Sample. Input sale 250 sale 100 refund 50 total tip close sale 5 āĻĻāĻŋāϞ⧠āϤāĻŋāύ āϞāĻžāĻāύ⧠total 300, unknown tip āĻāϰ closed 300āĨ¤
const input = require("fs").readFileSync(0, "utf8");
const tokens = input.split(/\s+/).filter(Boolean);
let at = 0;
const next = () => tokens[at++];
const nextInt = () => Number(next());
const out = [];
// your code: read with next() and nextInt(), push every line of output to out
console.log(out.join("\n"));
Run in Compiler
Hint 1
āĻā§āύ command-āĻāϰ āĻĒāϰ⧠amount āĻĨāĻžāĻā§, āĻāϰ āĻā§āύāĻāĻžāϰ āĻĒāϰ⧠āĻĨāĻžāĻā§ āύāĻž? āĻāĻāĻāĻž āĻ āĻā§āύāĻž āĻļāĻŦā§āĻĻā§āϰ āĻĒāϰā§āϰ token-āĻāĻž āĻā§?
Hint 2
Input āĻļā§āώ āύāĻž āĻšāĻāϝāĻŧāĻž āĻĒāϰā§āϝāύā§āϤ āĻĒā§āϰāϤāĻŋ pass-āĻ āĻāĻāĻāĻž āĻļāĻŦā§āĻĻ āĻĒāĻĄāĻŧā§, āĻāϰ āĻāĻāĻžāϰ āĻāĻĒāϰ switch āĻāϰā§āĨ¤ āĻļā§āϧ⧠sale āĻāϰ refund-āĻāϰ case āĻāĻāĻāĻž amount āĻĒāĻĄāĻŧā§āĨ¤ switch-āĻāϰ āĻā§āϤāϰā§āϰ break āĻŦā§āϰ āĻšāϝāĻŧ āĻļā§āϧ⧠switch āĻĨā§āĻā§, āϤāĻžāĻ close-āĻāϰ loop āĻļā§āώ āĻāϰāĻžāϰ āĻ
āύā§āϝ āĻāĻāĻāĻž āĻāĻĒāĻžāϝāĻŧ āϞāĻžāĻā§āĨ¤
Maria āĻāĻžāύāϤ⧠āĻāĻžāϝāĻŧ āĻĻā§āĻĄāĻŧ āĻā§āĻāĻŋ āĻĒāϰā§āϝāύā§āϤ āĻāϝāĻŧāĻāĻž prime āĻāĻā§, āĻāϰ Kenji āĻŦāϞ⧠computer āϏā§āĻāĻž āĻā§āύ⧠āĻĢā§āϞāϤ⧠āĻĒāĻžāϰā§āĨ¤ Prime āĻšāϞ⧠1-āĻāϰ āĻā§āϝāĻŧā§ āĻŦāĻĄāĻŧ āĻāĻŽāύ āĻĒā§āϰā§āĻŖāϏāĻāĻā§āϝāĻž, āϝāĻžāĻā§ āĻļā§āϧ⧠1 āĻāϰ āϏ⧠āύāĻŋāĻā§āĻ āĻāĻžāĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āĨ¤ n āĻĒāĻĄāĻŧā§ starter-āĻāϰ nextInt() āĻĻāĻŋāϝāĻŧā§āĨ¤
Input. āĻāĻ āϞāĻžāĻāύ⧠nāĨ¤
Output. āĻĻā§āĻ āϞāĻžāĻāύ: n-āĻāϰ āϏāĻŽāĻžāύ āĻŦāĻž āĻā§āĻ prime āĻāϝāĻŧāĻāĻž, āĻāϰ āĻāĻĻā§āϰ āĻŽāϧā§āϝ⧠āϏāĻŦāĻā§āϝāĻŧā§ āĻŦāĻĄāĻŧāĻāĻžāĨ¤ āĻā§āύ⧠prime āύāĻž āĻĨāĻžāĻāϞ⧠(n < 2) āĻĻā§āĻŦāĻŋāϤā§āϝāĻŧ āϞāĻžāĻāύ āĻšāĻŦā§ noneāĨ¤
Constraints. 1 <= n <= 15000000āĨ¤
Sample. Input 30 āĻĻāĻŋāϞ⧠āĻĻā§āĻ āϞāĻžāĻāύ⧠10 āĻāϰ 29āĨ¤
const input = require("fs").readFileSync(0, "utf8");
const tokens = input.split(/\s+/).filter(Boolean);
let at = 0;
const next = () => tokens[at++];
const nextInt = () => Number(next());
const out = [];
// your code: read with next() and nextInt(), push every line of output to out
console.log(out.join("\n"));
Run in Compiler
Hint 1
15000000 āĻĒāϰā§āϝāύā§āϤ āĻĒā§āϰāϤāĻŋāĻāĻž āϏāĻāĻā§āϝāĻžāϰ āĻāĻžāĻāĻ āĻā§āĻāĻā§ āĻĻā§āĻāϞ⧠āĻāϤā§āϤāϰ āĻ āĻŋāĻāĻ āĻāϏā§āĨ¤ āĻāĻŋāύā§āϤ⧠āĻāϤ⧠āĻāϤ āϏāĻŽāϝāĻŧ āϞāĻžāĻā§, āĻāϰ judge āĻāϤāĻā§āώāĻŖ āĻ āĻĒā§āĻā§āώāĻž āĻāϰā§?
Hint 2
āĻĒā§āϰāĻļā§āύāĻāĻž āĻāϞā§āĻā§ āĻĻāĻžāĻāĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻž āϏāĻāĻā§āϝāĻžāϰ āĻā§āύ⧠āĻāĻžāĻāĻ āĻāĻā§ āĻāĻŋ āύāĻž āĻāĻŋāĻā§āĻā§āϏ āύāĻž āĻāϰā§, āĻĒā§āϰāϤāĻŋāĻāĻž prime-āĻā§ āĻĻāĻŋāϝāĻŧā§ āĻāϰ āύāĻŋāĻā§āϰ āĻā§āĻŖāĻŋāϤāĻāĻā§āϞ⧠āĻāĻžāĻāĻŋāϝāĻŧā§ āĻĻāĻžāĻāĨ¤ 0 āĻĨā§āĻā§ n āĻĒāϰā§āϝāύā§āϤ āĻĒā§āϰāϤāĻŋāĻāĻž āϏāĻāĻā§āϝāĻžāϰ āĻāύā§āϝ āĻāĻāĻāĻž true āĻŦāĻž false flag āϰāĻžāĻā§, āĻāϰ āĻļā§āώ⧠āϝ⧠flag-āĻā§āϞ⧠āĻāĻāύāĻ true āϏā§āĻā§āϞ⧠āĻā§āύā§āĨ¤
āĻāĻāĻāĻž mock interview-āϤ⧠Alice āĻĒāĻžāϝāĻŧ āĻāĻŋāĻā§ āϏāĻāĻā§āϝāĻžāϰ āĻāĻāĻāĻž āϤāĻžāϞāĻŋāĻāĻž āĻāϰ āĻāĻāĻāĻž targetāĨ¤ āĻāĻā§ āĻā§āĻāĻā§ āĻŦā§āϰ āĻāϰāϤ⧠āĻšāĻŦā§ āĻĒā§āϰāĻĨāĻŽ āĻāĻŽāύ āĻĻā§āĻā§ position, āϝāĻžāĻĻā§āϰ āϏāĻāĻā§āϝāĻž āĻĻā§āĻā§ āϝā§āĻ āĻāϰāϞ⧠target āĻšāϝāĻŧāĨ¤ Input āĻĒāĻĄāĻŧā§ starter-āĻāϰ nextInt() āĻĻāĻŋāϝāĻŧā§āĨ¤
Input. āĻĒā§āϰāĻĨāĻŽ āϞāĻžāĻāύ⧠n āĻāϰ target tāĨ¤ āĻĻā§āĻŦāĻŋāϤā§āϝāĻŧ āϞāĻžāĻāύ⧠n-āĻāĻž āĻĒā§āϰā§āĻŖāϏāĻāĻā§āϝāĻž, a1 āĻĨā§āĻā§ anāĨ¤
Output. āĻāĻ āϞāĻžāĻāύāĨ¤ 1 āĻĨā§āĻā§ āĻā§āύāĻž āĻāĻŽāύ āĻĒā§āϰāĻĨāĻŽ āĻĻā§āĻā§ position i < j, āϝā§āĻāĻžāύ⧠ai + aj = t, print āĻāϰ⧠i j āĻāĻāĻžāϰā§āĨ¤ "āĻĒā§āϰāĻĨāĻŽ" āĻŽāĻžāύ⧠āϏāĻŦāĻā§āϝāĻŧā§ āĻā§āĻ i, āĻāϰ āϏā§āĻ i-āĻāϰ āĻāύā§āϝ āϏāĻŦāĻā§āϝāĻŧā§ āĻā§āĻ jāĨ¤ āĻāĻŽāύ āĻā§āύ⧠āĻā§āĻĄāĻŧāĻž āύāĻž āĻĨāĻžāĻāϞ⧠print āĻāϰ⧠noneāĨ¤
Constraints. 2 <= n <= 5000āĨ¤ -1000000000 <= ai <= 1000000000āĨ¤ -2000000000 <= t <= 2000000000āĨ¤
Sample. Input 6 10 āĻāϰ 3 8 5 7 2 5 āĻĻāĻŋāϞ⧠1 4: 3 + 7 āĻšāϞ⧠10, āĻāϰ 8 + 2 āĻāϰ 5 + 5-āĻāϰ āĻā§āĻĄāĻŧāĻž āĻāϏ⧠āĻĒāϰā§āĨ¤
const input = require("fs").readFileSync(0, "utf8");
const tokens = input.split(/\s+/).filter(Boolean);
let at = 0;
const next = () => tokens[at++];
const nextInt = () => Number(next());
const out = [];
// your code: read with next() and nextInt(), push every line of output to out
console.log(out.join("\n"));
Run in Compiler
Hint 1
Position i-āĻāϰ āϏāĻžāĻĨā§ āĻā§āύ āĻā§āύ position j āĻā§āĻĄāĻŧāĻž āĻŦāĻžāĻāϧāϤ⧠āĻĒāĻžāϰā§? j āĻāĻŋ i āύāĻŋāĻā§āĻ āĻšāϤ⧠āĻĒāĻžāϰā§, āĻŦāĻž i-āĻāϰ āĻāĻā§āϰ āĻā§āύ⧠position?
Hint 2
āϏāĻāĻā§āϝāĻžāĻā§āϞ⧠āϰā§āĻā§ āĻĻāĻžāĻ, āϤāĻžāϰāĻĒāϰ āĻĻā§āĻā§ nested loop: i āĻĒā§āϰāϤāĻŋāĻāĻž position-āĻāϰ āĻāĻĒāϰ, āĻāϰ j āĻļā§āϧ⧠i-āĻāϰ āĻĒāϰā§āϰ position-āĻā§āϞā§āϰ āĻāĻĒāϰāĨ¤ āĻā§āĻĄāĻŧāĻžāĻā§āϞ⧠āĻāĻ āĻā§āϰāĻŽā§āĻ check āĻāϰā§, āĻāϰ āĻĒā§āϰāĻĨāĻŽ āĻŽāĻŋāϞā§āĻ āĻĻā§āĻā§ loop āĻĨā§āĻā§ āĻŦā§āϰ āĻšāϝāĻŧā§ āϝāĻžāĻāĨ¤
āϏāĻāϰāĻžāĻāϰ āϝ⧠āĻĒā§āϰāĻļā§āύāĻā§āϞ⧠āĻāϏā§
āĻāĻŽāĻžāϰ program-āĻāϰ āĻļā§āώ āϞāĻžāĻāύ⧠NaN print āĻšāϝāĻŧāĨ¤ āĻāĻāĻž āĻāϏ⧠āĻā§āĻĨāĻž āĻĨā§āĻā§?
āϤā§āĻŽāĻžāϰ loop input-āĻ āϝāϤāĻā§āϞ⧠token āĻāĻā§ āϤāĻžāϰ āĻā§āϝāĻŧā§ āĻāĻāĻāĻž āĻŦā§āĻļāĻŋ āĻĒāĻĄāĻŧā§āĻā§āĨ¤ āϤāĻāύ
next()āĻĻā§āϝāĻŧundefined,Number(undefined)āĻšāϞā§NaN, āĻāϰNaNāϝ⧠āϝā§āĻāĻĢāϞ āĻā§āĻāϝāĻŧ āϏā§āĻāĻžāĻ āύāώā§āĻ āĻāϰā§āĨ¤ Loop-āĻāϰ test āĻĻā§āĻā§: 0 āĻĨā§āĻā§ āĻļā§āϰ⧠āĻšāϞā§i < nāĻāϞ⧠n āĻŦāĻžāϰ, āĻāϰi <= nāĻāϞ⧠n + 1 āĻŦāĻžāϰāĨ¤Playground-āĻ āĻāĻŽāĻžāϰ count-primes āĻĻāĻŋāĻŦā§āϝāĻŋ āĻāϞāϞāĨ¤ Judge āϤāĻžāĻšāϞ⧠Time Limit Exceeded āĻŦāϞ⧠āĻā§āύ?
Playground āĻāĻāĻāĻž run āĻĨāĻžāĻŽāĻžāϝāĻŧ 10 āϏā§āĻā§āύā§āĻĄ āĻĒāϰā§, āĻāϰ judge āĻāĻāĻāĻž JavaScript program-āĻā§ āĻĒā§āϰāϤāĻŋ test-āĻ āĻĻā§āϝāĻŧ 2 āϏā§āĻā§āύā§āĻĄāĨ¤ n = 15000000-āĻ āĻļā§āϧ⧠āĻāĻāύ āĻĒāϰā§āϝāύā§āϤ āĻĒāĻžāĻāϝāĻŧāĻž prime āĻĻāĻŋāϝāĻŧā§ āĻāĻžāĻ āĻāϰāĻž trial division-āĻāϰ Playground-āĻāϰ āĻĻā§āĻ run-āĻ āϞā§āĻā§āĻā§ āĻĒā§āϰāĻžāϝāĻŧ 4 āϏā§āĻā§āύā§āĻĄ: āĻāĻāĻžāύ⧠āĻļā§āώ āĻšāϝāĻŧ, āĻāĻŋāύā§āϤ⧠judge-āĻāϰ āĻāύā§āϝ āĻ āύā§āĻ āĻŦā§āĻļāĻŋ āϧā§āϰāĨ¤ āϝ⧠program āĻā§āĻ test-āĻā§āϞ⧠āĻĒāĻžāĻļ āĻāϰ⧠āĻāϰ āĻļā§āϧ⧠āϏāĻŦāĻā§āϝāĻŧā§ āĻŦāĻĄāĻŧāĻāĻžāϝāĻŧ āĻĢā§āϞ āĻāϰā§, āϏā§āĻāĻž āϏāĻžāϧāĻžāϰāĻŖāϤ āĻā§āϞ āύāĻž, āϧā§āϰāĨ¤
āĻāĻāĻžāύ⧠āĻĻā§āĻāĻžāύ⧠loop-āĻā§āϞā§āϰ āĻŦāĻĻāϞ⧠āĻāĻŋ
for...of,forEachāĻŦāĻžMath.mināĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŋ?Judge āĻļā§āϧ⧠āϤā§āĻŽāĻžāϰ output āĻĒāĻĄāĻŧā§, āϤāĻžāĻ āϝā§āĻā§āύ⧠āĻ āĻŋāĻ program āĻĒāĻžāĻļ āĻāϰā§āĨ¤
for...ofāĻāϞ⧠āϤā§āĻŽāĻžāϰ āύāĻŋāĻā§āϰ āĻŦāĻžāύāĻžāύ⧠āĻāĻāĻāĻž array-āϰ āĻāĻĒāϰāĨ¤forEach-āĻāϰ āĻāĻā§āĻāĻžāĻā§ āĻĨāĻžāĻŽāĻžāϰ āĻā§āύ⧠āĻāĻĒāĻžāϝāĻŧ āύā§āĻ, āϤāĻžāĻguessing-gameāĻŦāĻžfirst-pair-sum-āĻ āĻāĻāĻž āĻŽāĻžāύāĻžāϝāĻŧ āύāĻž; lesson 04 āĻĻā§āĻāĻžāϝāĻŧ āĻā§āύāĨ¤ Array method-āĻā§āϞ⧠āĻ āĻŋāĻāĻŽāϤ⧠āĻļā§āĻāĻžāϝāĻŧ Module 7āĨ¤āĻāĻŋāĻā§ statement "space āĻŦāĻž line break" āĻŦāϞ⧠āĻā§āύ?
Starter āĻĒā§āϰ⧠input-āĻā§ token-āĻ āĻāĻžāĻ āĻāϰā§, āϤāĻžāĻ āĻāϰ āĻāĻžāĻā§ line break āĻāϰ space āĻāĻāĻ āĻāĻŋāύāĻŋāϏāĨ¤
sum-until-zero,guessing-gameāĻāϰtill-commandsāϏā§āĻāĻž āĻŦāϞ⧠āĻĻā§āϝāĻŧ, āĻāϰ āĻāĻĻā§āϰ hidden test āĻĻā§āĻā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āĨ¤ āϝ⧠program āĻļā§āϧ⧠āĻĒā§āϰāĻĨāĻŽ āϞāĻžāĻāύ āĻĒāĻĄāĻŧā§, āϏ⧠āĻĒāϰā§āϰ āϞāĻžāĻāύā§āϰ āĻĒā§āϰāϤāĻŋāĻāĻž āϏāĻāĻā§āϝāĻž āĻšāĻžāϰāĻžāϝāĻŧāĨ¤āĻāĻŽāĻžāϰ program sample āĻĒāĻžāĻļ āĻāϰā§āĨ¤ āϤāĻžāĻšāϞ⧠hidden test āĻā§āύ āĻĢā§āϞ āĻāϰā§?
Sample āĻāĻāĻāĻžāĻ āĻā§āĻ āĻāĻĻāĻžāĻšāϰāĻŖ, statement āĻŦā§āĻāĻžāύā§āϰ āĻāύā§āϝ āĻŦāĻžāĻāĻžāĨ¤ Hidden test-āĻ āĻāϰāĻ āĻĨāĻžāĻā§ n = 1, āĻ āĻŋāĻ āϏā§āĻŽāĻžāϰ āĻāĻĒāϰā§āϰ value, āĻĒāĻĄāĻŧāĻžāϰ āĻŽāϤ⧠āĻāĻŋāĻā§āĻ āύā§āĻ āĻāĻŽāύ input āĻāϰ āϏāĻŦāĻā§āϝāĻŧā§ āĻŦāĻĄāĻŧ āĻŽāĻžāĻĒāĨ¤ āĻāĻĒāϰā§āϰ āĻāĻŋāύāĻžāϰāĻžāϰ table āĻāĻĻā§āϰ āύāĻžāĻŽ āĻŦāϞ⧠āĻĻā§āϝāĻŧ; submit āĻāϰāĻžāϰ āĻāĻā§ āĻā§āĻāĻā§āϞ⧠Playground-āĻ āĻāĻžāϞāĻŋāϝāĻŧā§ āĻĻā§āĻā§āĨ¤
āĻŽā§āϞ āĻāĻĨāĻž
- Input n āĻĻāĻŋāϞ⧠āĻĒāĻĄāĻŧā§ count āĻĻāĻŋāϝāĻŧā§, āĻā§āύ⧠value āϤāĻžāϞāĻŋāĻāĻž āĻļā§āώ āĻāϰāϞ⧠sentinel āĻĻāĻŋāϝāĻŧā§, āĻāϰ āĻāĻŋāĻā§āĻ āύāĻž āĻĨāĻžāĻāϞ⧠āĻĒāĻĄāĻŧā§ āϝāϤāĻā§āώāĻŖ āύāĻž
next()āĻĻā§āϝāĻŧundefinedāĨ¤ - Statement āϝ⧠āϤā§āϞāύāĻž āĻŦāϞ⧠āϏā§āĻāĻžāĻ āϞā§āĻā§: "āĻāĻŽāĻĒāĻā§āώā§" āĻŽāĻžāύā§
>=, āĻāϰ 80 āĻĨā§āĻā§ 89-āĻāϰ āĻŽāϤ⧠āĻāĻžāĻ āĻĻā§āĻ āĻŽāĻžāĻĨāĻžāĻ āϧāϰā§āĨ¤ else ifchain-āĻ āĻŦāĻžswitch-āĻ āĻā§āϰāĻŽāĻ āĻāϤā§āϤāϰ āĻ āĻŋāĻ āĻāϰā§: 3-āĻāϰ āĻāĻā§ 15 test āĻāϰā§, āĻāϰ āĻāĻā§āĻā§ āĻāϰ⧠body āĻāĻžāĻ āύāĻž āĻāϰāϞ⧠āĻĒā§āϰāϤāĻŋāĻāĻž casebreakāĻĻāĻŋāϝāĻŧā§ āĻļā§āώ āĻāϰā§āĨ¤- āĻāϤā§āϤāϰ āĻāĻžāύāĻžāĻŽāĻžāϤā§āϰ āĻĨāĻžāĻŽā§:
breakāĻŦā§āϰ āĻšāϝāĻŧ āĻāĻāĻāĻž loop āĻĨā§āĻā§, labelledbreakāĻĻā§āĻā§ āĻĨā§āĻā§, āĻāϰswitch-āĻāϰ āĻā§āϤāϰā§āϰbreakāĻļā§āϧā§switchāĻĨā§āĻā§āĨ¤ - āĻāϞāϤāĻŋ minimum āĻŦāĻž maximum āĻļā§āϰ⧠āĻāϰ⧠āĻĒā§āϰāĻĨāĻŽ value āĻĨā§āĻā§, āĻāϰ āĻāĻŽāύ algorithm āĻŦāĻžāĻā§ āϝā§āĻāĻž judge-āĻāϰ 2 āϏā§āĻā§āύā§āĻĄā§ āĻāĻāĻā§, āϝā§āĻŽāύ sieveāĨ¤
- āĻāϰāĻ āĻāĻā§āϰā§: CP āĻāϰ Interview Pack, nested loop, āĻāĻā§āĻāĻžāĻā§ āĻŦā§āϰ āĻšāĻāϝāĻŧāĻž āĻāϰ bug gallery (Pro)āĨ¤
āĻāϰāĻĒāϰ āĻāϏāĻā§ cheat sheet, āϝā§āĻāĻž āĻĒā§āϰ⧠module-āĻā§ āĻāĻ āĻĒāĻžāϤāĻžāϝāĻŧ āĻāύā§, āĻāϰ module test: āĻĻāĻļāĻāĻž āĻĒā§āϰāĻļā§āύ āĻāϰ āĻāĻ set-āĻāϰ āĻĻā§āĻā§ problem, fizzbuzz āĻāϰ min-max-averageāĨ¤ āϤāĻžāϰāĻĒāϰ Module 5 āĻā§āϞ⧠functionāĨ¤
lesson ā§ āĻļā§āώ
āϏāĻŦ problem accepted āĻšāϞā§āĻ lesson āĻļā§āώāĨ¤
ā§Š āĻāĻž free problem-āĻāϰ āĻŽāϧā§āϝ⧠ā§Ļ āĻāĻž accepted
āĻĒāϰā§āϰāĻāĻž: Cheat sheet: āĻāĻ āĻĒāĻžāϤāĻžāϝāĻŧ if, switch āĻāϰ loop