ABOUT ME

์—ด์‹ฌํžˆ ์‚ด์•„์•ผ ๋จน๊ณ ์‚ด์ง€๐Ÿ˜‰

Today
Yesterday
Total
  • [๋ฐฑ์ค€] 17478๋ฒˆ: ์žฌ๊ท€ํ•จ์ˆ˜๊ฐ€ ๋ญ”๊ฐ€์š”? (Node.js)
    ๐Ÿ“ ์•Œ๊ณ ๋ฆฌ์ฆ˜/๋ฐฑ์ค€ 2024. 9. 3. 15:52

     

    ์ ‘๊ทผ๋ฐฉ์‹

    ๋ฐ˜๋ณต๋˜๋Š” ๊ธ€๊ท€์— ๋ฐ˜๋ณต๋˜๋Š” ๊ฐ’"____"์„ ์ถ”๊ฐ€๋กœ ํ•˜๋ฉด์„œ ์ถœ๋ ฅ์„ ํ•˜๋Š” ๊ฒƒ์„ ๋ดค์„ ๋•Œ ๋ฌธ์ œ์˜ ์ œ๋ชฉ๊ณผ๋„ ๊ฐ™์ด

    ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ ํ’€๋ผ๋Š” ๊ฒƒ ๊ฐ™๋‹ค!

     

    ์žฌ๊ท€ํ•จ์ˆ˜๋ž€?

    ํ•จ์ˆ˜ ์•ˆ์—์„œ ์ž๊ธฐ์ž์‹ ์„ ๋‹ค์‹œ ํ˜ธ์ถœํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
    ๊ณ„์†ํ•ด์„œ ์ž๊ธฐ์ž์‹ ์„ ํ˜ธ์ถœํ•˜๋ฉด์„œ ์•Œ๋งž์€ ์กฐ๊ฑด์„ ๋งŒ๋‚˜๋ฉด ํ•จ์ˆ˜๋ฅผ ๋น ์ ธ๋‚˜๊ฐ€๋Š” ๋กœ์ง์„ ์ˆ˜ํ–‰ํ•˜๊ณค ํ•ฉ๋‹ˆ๋‹ค.

     

     

    ํ’€์ด โฐ

    const readline = require("readline");
    
    const rl = readline.createInterface({
      input: process.stdin,
      output: process.stdout,
    });
    
    let input = [];
    
    rl.on("line", function (line) {
      input.push(Number(line));
    }).on("close", function () {
      // ์ž…๋ ฅ๋œ ๊ฐ’
      let num = input[0];
      // ํ˜„์žฌ๊ฐ’์ด๋ฉด ์žฌ๊ท€๋ฅผ ํ†ตํ•ด +๋  ๊ฐ’
      let curNum = 0;
      // ๊ธ€
      let story = "";
      // ____
      let underline = "";
      console.log("์–ด๋А ํ•œ ์ปดํ“จํ„ฐ๊ณตํ•™๊ณผ ํ•™์ƒ์ด ์œ ๋ช…ํ•œ ๊ต์ˆ˜๋‹˜์„ ์ฐพ์•„๊ฐ€ ๋ฌผ์—ˆ๋‹ค.");
      const recursive = (line, num, curNum) => {
        if (num > curNum) {
          // ์ฒ˜์Œ ์ถ”๊ฐ€๋œ line์€ ๋นˆ๊ฐ’์ด๋ฉฐ ์ดํ›„ ์ถ”๊ฐ€๋  ๊ฐ’์—๋Š” "____"๊ฐ€ ์ถ”๊ฐ€๋กœ ๋ถ™์Œ
          story += `${line}"์žฌ๊ท€ํ•จ์ˆ˜๊ฐ€ ๋ญ”๊ฐ€์š”?"\n`;
          story += `${line}"์ž˜ ๋“ค์–ด๋ณด๊ฒŒ. ์˜›๋‚ ์˜›๋‚  ํ•œ ์‚ฐ ๊ผญ๋Œ€๊ธฐ์— ์ด์„ธ์ƒ ๋ชจ๋“  ์ง€์‹์„ ํ†ต๋‹ฌํ•œ ์„ ์ธ์ด ์žˆ์—ˆ์–ด.\n`;
          story += `${line}๋งˆ์„ ์‚ฌ๋žŒ๋“ค์€ ๋ชจ๋‘ ๊ทธ ์„ ์ธ์—๊ฒŒ ์ˆ˜๋งŽ์€ ์งˆ๋ฌธ์„ ํ–ˆ๊ณ , ๋ชจ๋‘ ์ง€ํ˜œ๋กญ๊ฒŒ ๋Œ€๋‹ตํ•ด ์ฃผ์—ˆ์ง€.\n`;
          story += `${line}๊ทธ์˜ ๋‹ต์€ ๋Œ€๋ถ€๋ถ„ ์˜ณ์•˜๋‹ค๊ณ  ํ•˜๋„ค. ๊ทธ๋Ÿฐ๋ฐ ์–ด๋А ๋‚ , ๊ทธ ์„ ์ธ์—๊ฒŒ ํ•œ ์„ ๋น„๊ฐ€ ์ฐพ์•„์™€์„œ ๋ฌผ์—ˆ์–ด."\n`;
          // num(์ž…๋ ฅ๊ฐ’)์ด ๋งŒ์•ฝ 4์ด๋ฉด, 0 1 2 3 ๊นŒ์ง€ ๋Œ ์ˆ˜ ์žˆ๊ฒŒ ๊ฐ’์„ ํ‚ค์›Œ์คŒ
          curNum++;
          recursive(line + "____", num, curNum);
        } else {
          // curNum์ด 4๊ฐ€ ๋˜๋ฉด ๋งˆ๋ฌด๋ฆฌ๋ฉ˜ํŠธ๋กœ ๋ณ€๊ฒฝ 
          story += `${line}"์žฌ๊ท€ํ•จ์ˆ˜๊ฐ€ ๋ญ”๊ฐ€์š”?"\n`;
          story += `${line}"์žฌ๊ท€ํ•จ์ˆ˜๋Š” ์ž๊ธฐ ์ž์‹ ์„ ํ˜ธ์ถœํ•˜๋Š” ํ•จ์ˆ˜๋ผ๋„ค"\n`;
        }
        story += `${line}๋ผ๊ณ  ๋‹ต๋ณ€ํ•˜์˜€์ง€.\n`;
      };
      recursive(underline, num, curNum);
      console.log(story);
    });

     

    ์žฌ๊ท€ํ•จ์ˆ˜๋Š” ํ˜„์—…์—์„œ ์กฐ์ง๋„๋ฅผ ๊ตฌ์„ฑํ•  ๋–„ ์ž์ฃผ ์‚ฌ์šฉํ–ˆ๋˜ ํ•จ์ˆ˜์—ฌ์„œ ๊ทธ๋Ÿฐ์ง€ ๋‚˜๋ฆ„ ์‰ฝ๊ฒŒ ํ’€ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

     


    ํ˜น์‹œ๋ชจ๋ฅผ ๋„์›€๋ง์ด ํ•„์š”ํ•  ์ˆ˜๋„ ์žˆ์œผ๋‹ˆ... ๊ธฐ์กด์ฝ”๋“œ๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ์žฌ๊ท€ํ•จ์ˆ˜์— ๋Œ€ํ•ด์„œ ์ž‘์„ฑ์„ ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

    ํ•จ์ˆ˜ ์•ˆ์—์„œ ํ•จ์ˆ˜๋ฅผ ์žฌํ˜ธ์ถœํ•˜๋Š” ๊ฑธ ๋ˆˆ์œผ๋กœ ๋ณด์‹œ๋ฉด ํ›จ์”ฌ ๋” ์ดํ•ด๊ฐ€ ๋น ๋ฅผ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค!

     

    let num = input[0];
      let curNum = 0;
      let story = "";
      let underline = "";
      console.log("์–ด๋А ํ•œ ์ปดํ“จํ„ฐ๊ณตํ•™๊ณผ ํ•™์ƒ์ด ์œ ๋ช…ํ•œ ๊ต์ˆ˜๋‹˜์„ ์ฐพ์•„๊ฐ€ ๋ฌผ์—ˆ๋‹ค.");
      const recursive = (line, num, curNum) => {
        if (num > curNum) {
          story += `${line}"์žฌ๊ท€ํ•จ์ˆ˜๊ฐ€ ๋ญ”๊ฐ€์š”?"\n`;
          curNum++;
          recursive(line + "____", num, curNum);
          // ํ•จ์ˆ˜์•ˆ์— ํ•จ์ˆ˜๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐ!
          // const recursive = (line, num, curNum) => {
            // if (num > curNum) {
              // story += `${line}"์žฌ๊ท€ํ•จ์ˆ˜๊ฐ€ ๋ญ”๊ฐ€์š”?"\n`;
              // curNum++;
              // recursive(line + "____", num, curNum);
            // } else {
              // story += `${line}"์žฌ๊ท€ํ•จ์ˆ˜๋Š” ์ž๊ธฐ ์ž์‹ ์„ ํ˜ธ์ถœํ•˜๋Š” ํ•จ์ˆ˜๋ผ๋„ค"\n`;
            // }
            // story += `${line}๋ผ๊ณ  ๋‹ต๋ณ€ํ•˜์˜€์ง€.\n`;
          // };
        } else {
          story += `${line}"์žฌ๊ท€ํ•จ์ˆ˜๋Š” ์ž๊ธฐ ์ž์‹ ์„ ํ˜ธ์ถœํ•˜๋Š” ํ•จ์ˆ˜๋ผ๋„ค"\n`;
        }
        story += `${line}๋ผ๊ณ  ๋‹ต๋ณ€ํ•˜์˜€์ง€.\n`;
      };
      recursive(underline, num, curNum);
      console.log(story);

     

    ๋ฐฑ์ค€ 17478๋ฒˆ ๋งํฌ

    ๐Ÿ‘‰ https://www.acmicpc.net/problem/17478

Designed by Tistory.