ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [๋ฐฑ์ค€] 2776๋ฒˆ: ์•”๊ธฐ์™• (Node.js)
    ๐Ÿ“ ์•Œ๊ณ ๋ฆฌ์ฆ˜/๋ฐฑ์ค€ 2024. 9. 3. 17:27

     

    ์ ‘๊ทผ๋ฐฉ์‹

    ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ• ์ค„ ์•Œ์•˜๋Š”๋ฐ ์ž๊พธ ํ‹€๋ฆฌ๋”๋ผ๊ตฌ์š”.. ์ด์œ ๊ฐ€ ๋ญ”์ง€ ๋ณด๋‹ˆ๊นŒ ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ ์ค‘์š”ํ•œ ๋ฌธ์ œ์ธ๊ฑธ ๋’ค๋Šฆ๊ฒŒ ์•Œ์•˜์Šต๋‹ˆ๋‹ค!

     

    ํ…Œ์ŠคํŠธ์ผ€์ด์Šค์— ์žˆ๋Š” 4 1 5 2 3์„ ๋ฐฐ์—ด๋กœ [4, 1, 5, 2, 3]์œผ๋กœ ๋งŒ๋“  ๋’ค 1 3 5 7 9 ๊ฐ€ ์žˆ๋Š” ๋ฐฐ์—ด์— includes๋ฅผ ํ•ด๋ณด์•˜๋Š”๋ฐ

    ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ ์ค‘์š”ํ•œ ๋ฌธ์ œ์—์„œ๋Š” ๋น„ํšจ์œจ์ด๋”๋ผ๊ตฌ์š”.

    ๊ทธ๋ž˜์„œ Set๊ณผ has๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ์Šต๋‹ˆ๋‹ค!

     

    Set์ด๋ž€?

    Set์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ์ค‘๋ณต๋˜์ง€ ์•Š๋Š” ๊ณ ์œ ํ•œ ๊ฐ’๋“ค์˜ ์ง‘ํ•ฉ์„ ์ €์žฅํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋‚ด์žฅ ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค.

     

     

    Set์€ ๊ฐ™์€ ๊ฐ’์ด ์—ฌ๋Ÿฌ ๋ฒˆ ์ถ”๊ฐ€๋  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์—, ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ค‘๋ณต ๊ฐ’์„ ์ œ๊ฑฐํ•ด์ค๋‹ˆ๋‹ค!

    ๊ทธ๋ฆฌ๊ณ  ๋‚ด๋ถ€์ ์œผ๋กœ ํ•ด์‹œ ํ…Œ์ด๋ธ”์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„๋˜๋ฏ€๋กœ, ํŠน์ • ์š”์†Œ๊ฐ€ Set์— ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ์ž‘์—…(=>has())์€ ํ‰๊ท ์ ์œผ๋กœ O(1)์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

     

    ๊ทธ๋Ÿผ ์—ฌ๊ธฐ์„œ ๋˜ ๊ถ๊ธˆํ• ๊ฒ๋‹ˆ๋‹ค!

    O(1)์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ž€?

    ์ƒ์ˆ˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ผ๊ณ ๋„ ๋ถˆ๋ฆฌ๋ฉฐ, ์ž…๋ ฅ ํฌ๊ธฐ์™€ ์ƒ๊ด€์—†์ด ํ•ญ์ƒ ์ผ์ •ํ•œ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์˜๋ฏธํ•˜๋Š”๋ฐ
    ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ์™€ ๋ฌด๊ด€ํ•˜๊ฒŒ ํ•ญ์ƒ ๊ฐ™์€ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.
    ์ฆ‰, ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ๊ฐ€ 1์ด๋“ , 1000์ด๋“ , 100๋งŒ์ด๋“ , ์‹คํ–‰ ์‹œ๊ฐ„์€ ์ผ์ •ํ•ฉ๋‹ˆ๋‹ค.

     

     

    ํ’€์ด โฐ

    const readline = require("readline");
    
    const rl = readline.createInterface({
      input: process.stdin,
      output: process.stdout,
    });
    
    let input = [];
    
    rl.on("line", function (line) {
      input.push(line);
    }).on("close", function () {
      // ํ…Œ์ŠคํŠธ์ผ€์ด์Šค ๊ฐฏ์ˆ˜
      let tCase = input[0];
      // ํ…Œ์ŠคํŠธ์ผ€์ด์Šค 1๊ธฐ์ค€์œผ๋กœ 2๋ฒˆ์งธ์™€ 4๋ฒˆ์งธ์˜ ๋ฐฐ์—ด์„ ๋‹ค๋ค„์•ผํ•ฉ๋‹ˆ๋‹ค.
      // ํ…Œ์ŠคํŠธ์ผ€์ด์Šค 2๊ธฐ์ค€์œผ๋กœ 6๋ฒˆ์งธ์™€ 8๋ฒˆ์งธ์˜ ๋ฐฐ์—ด์„ ๋‹ค๋ค„์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ์— += 4๋ฅผ ํ•ด์ฃผ๊ธฐ ์œ„ํ•œ index์ž…๋‹ˆ๋‹ค.
      let index = 0;
      // ๊ฒฐ๊ณผ๊ฐ’
      let result = [];
      for (let i = 0; i < tCase; i++) {
        // Set์„ ์‚ฌ์šฉํ•˜์—ฌ ์˜ค๋ธŒ์ ํŠธ ํ˜•ํƒœ์˜ ์ž…๋ ฅ๊ฐ’์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
        let note1 = new Set(input[index + 2].split(" ").map(Number));
        // ๊ธฐ์กด ๋ฐฐ์—ด ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
        let note2 = input[index + 4].split(" ").map(Number);
        for (item of note2) {
          // note1์€ Set ๊ณ ์œ ์˜ ์˜ค๋ธŒ์ ํŠธ ํ˜•ํƒœ์ด๋ฏ€๋กœ hasํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ note1์— item์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
          if (note1.has(item)) {
            result.push(1);
          } else {
            result.push(0);
          }
        }
        index += 4;
      }
      console.log(result.join("\n"));
    });

     

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

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

Designed by Tistory.