๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
{Algorithms}

03.22.23 {BOJ} 10810๋ฒˆ ๋‚˜์ด๊ณ„์‚ฐํ•˜๊ธฐ - node.js

by Davey 2023. 3. 22.
728x90

๊ณต๋„ฃ๊ธฐ

๐Ÿ”— ๋ฌธ์ œ ๋งํฌ https://www.acmicpc.net/problem/10810

๋ฌธ์ œ ์„ค๋ช…

๋„ํ˜„์ด๋Š” ๋ฐ”๊ตฌ๋‹ˆ๋ฅผ ์ด N๊ฐœ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ , ๊ฐ๊ฐ์˜ ๋ฐ”๊ตฌ๋‹ˆ์—๋Š” 1๋ฒˆ๋ถ€ํ„ฐ N๋ฒˆ๊นŒ์ง€ ๋ฒˆํ˜ธ๊ฐ€ ๋งค๊ฒจ์ ธ ์žˆ๋‹ค. ๋˜, 1๋ฒˆ๋ถ€ํ„ฐ N๋ฒˆ๊นŒ์ง€ ๋ฒˆํ˜ธ๊ฐ€ ์ ํ˜€์žˆ๋Š” ๊ณต์„ ๋งค์šฐ ๋งŽ์ด ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๊ฐ€์žฅ ์ฒ˜์Œ ๋ฐ”๊ตฌ๋‹ˆ์—๋Š” ๊ณต์ด ๋“ค์–ด์žˆ์ง€ ์•Š์œผ๋ฉฐ, ๋ฐ”๊ตฌ๋‹ˆ์—๋Š” ๊ณต์„ 1๊ฐœ๋งŒ ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค.

๋„ํ˜„์ด๋Š” ์•ž์œผ๋กœ M๋ฒˆ ๊ณต์„ ๋„ฃ์œผ๋ ค๊ณ  ํ•œ๋‹ค. ๋„ํ˜„์ด๋Š” ํ•œ ๋ฒˆ ๊ณต์„ ๋„ฃ์„ ๋•Œ, ๊ณต์„ ๋„ฃ์„ ๋ฐ”๊ตฌ๋‹ˆ ๋ฒ”์œ„๋ฅผ ์ •ํ•˜๊ณ , ์ •ํ•œ ๋ฐ”๊ตฌ๋‹ˆ์— ๋ชจ๋‘ ๊ฐ™์€ ๋ฒˆํ˜ธ๊ฐ€ ์ ํ˜€์žˆ๋Š” ๊ณต์„ ๋„ฃ๋Š”๋‹ค. ๋งŒ์•ฝ, ๋ฐ”๊ตฌ๋‹ˆ์— ๊ณต์ด ์ด๋ฏธ ์žˆ๋Š” ๊ฒฝ์šฐ์—๋Š” ๋“ค์–ด์žˆ๋Š” ๊ณต์„ ๋นผ๊ณ , ์ƒˆ๋กœ ๊ณต์„ ๋„ฃ๋Š”๋‹ค. ๊ณต์„ ๋„ฃ์„ ๋ฐ”๊ตฌ๋‹ˆ๋Š” ์—ฐ์†๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.

๊ณต์„ ์–ด๋–ป๊ฒŒ ๋„ฃ์„์ง€๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, M๋ฒˆ ๊ณต์„ ๋„ฃ์€ ์ดํ›„์— ๊ฐ ๋ฐ”๊ตฌ๋‹ˆ์— ์–ด๋–ค ๊ณต์ด ๋“ค์–ด ์žˆ๋Š”์ง€ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.


์ œํ•œ ์กฐ๊ฑด

  • N (1 ≤ N ≤ 100)๊ณผ M (1 ≤ M ≤ 100)
  • (1 ≤ i ≤ j ≤ N, 1 ≤ k ≤ N)

์˜ˆ์‹œ

์ž…๋ ฅ

5 4
1 2 3
3 4 4
1 4 1
2 2 2
-------
์ตœ๋นˆ๊ฐ’
1 1 
1 1 3
-------
์ตœ๋Œ“๊ฐ’
100 1
1 3 3

์ถœ๋ ฅ

1 2 1 1 0
----------
์ตœ๋นˆ๊ฐ’
3
----------
์ตœ๋Œ“๊ฐ’
3 3 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

๐Ÿ’ฏ ๋ฌธ์ œ ํ’€์ด

๐Ÿ’ก ๋ฌธ์ œ ์ดํ•ด

๋ฐ”๊ตฌ๋‹ˆ ์ด N๊ฐœ

M๊ฐœ์˜ ๊ณต์„ ์ฃผ์ž…ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์ž…๋ ฅ์กฐ๊ฑด์œผ๋กœ ์ฃผ์–ด์ง

ํ•˜๋‚˜์˜ ๋ฐฉ๋ฒ•์€ ์ •์ˆ˜ i j k๋กœ ๊ตฌ์„ฑ๋จ

i๋ฒˆ ๋ฐ”๊ตฌ๋‹ˆ๋ถ€ํ„ฐ j๋ฒˆ ๋ฐ”๊ตฌ๋‹ˆ๊นŒ์ง€ k๋ฒˆ ๋ฒˆํ˜ธ๊ฐ€ ์ ํžŒ ๊ณต์„ ๋„ฃ๋Š”๋‹ค๋Š” ์˜๋ฏธ์ž„

๐Ÿ”“ ๋ฌธ์ œ ์ ‘๊ทผ ๊ณผ์ •

N๊ฐœ์˜ ์š”์†Œ๋ฅผ ๊ฐ€์ง€๋Š” ๋ฐฐ์—ด์„ ์„ ์–ธํ•œ๋‹ค.

์ดˆ๊นƒ๊ฐ’์€ false๋กœ ํ•œ๋‹ค.

์ฃผ์–ด์ง„ ๊ณต์„ ๋„ฃ๋Š” ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ ๋ฐฐ์—ด(i,j)์š”์†Œ๋ฅผ

k๋ฒˆ ๋ฒˆํ˜ธ๋กœ ๋ฐ”๊พผ๋‹ค.

์š”์†Œ๊ฐ€ ๋น„์–ด์žˆ๋Š”์ง€ ๊ตณ์ด ์กฐ๊ฑด๋ฌธ์„ ์ถ”๊ฐ€ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.

๊ฐ•์ œ๋กœ ๋ฎ์–ด์”Œ์›Œ์ง„๋‹ค.

๐Ÿ”‘ ์ตœ์ข… ์ฝ”๋“œ์™€ ํ’€์ด

// ์ฒซ๋ฒˆ์งธ ํ’€์ด - ํ‹€๋ฆผ
const [ NM, ...methods] = require('fs').readFileSync('/dev/stdin', 'utf-8').toString().trim().split("\\n");
const [N, M] = NM.split(" ").map(Number);
let box = Array.from(Array(N), () => false)

methods.forEach(method => {
    const [i, j, k] = method.split(" ").map(Number);
    
    for (let idx=i-1; idx<j; idx++){
        box[idx] = k;
    }
})

console.log(...box.join('').replace(/false/g, 0).split(""))

// ๋‘๋ฒˆ์งธ ํ’€์ด - ํ‹€๋ฆผ
// ๊ณต๋„ฃ๊ธฐ
const [ NM, ...methods] = require('fs').readFileSync('/dev/stdin', 'utf-8').toString().trim().split("\\n");
const [N, M] = NM.split(" ").map(Number);
let box = Array.from(Array(N), () => 0)

methods.forEach(method => {
    const [i, j, k] = method.split(" ").map(Number);
    
    for (let idx=i-1; idx<j; idx++){
        box[idx] = k;
    }
})

console.log(...box.join('').split("").map(Number))

// ์„ธ๋ฒˆ์งธ ํ’€์ด - ํ†ต๊ณผ
// ์ฃผ์–ด์ง„ ์ธ๋ฑ์Šค ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๊ธฐ
// 1-indexed ์‚ฌ์šฉ
const [ NM, ...methods] = require('fs').readFileSync('/dev/stdin', 'utf-8').toString().trim().split("\\n");
const [N, M] = NM.split(" ").map(Number);
let box = Array.from(Array(N+1), () => 0)

methods.forEach(method => {
    const [i, j, k] = method.split(" ").map(Number);
    
    for (let idx=i; idx<j+1; idx++){
        box[idx] = k;
    }
})

console.log(...box.slice(1))

// ์„ธ๋ฒˆ์งธ ํ’€์ด - ํ†ต๊ณผ
// 0-indexed ์‚ฌ์šฉ
const [ NM, ...methods] = require('fs').readFileSync('/dev/stdin', 'utf-8').toString().trim().split("\\n");
const [N, M] = NM.split(" ").map(Number);
let box = Array.from(Array(N), () => 0)

methods.forEach(method => {
    const [i, j, k] = method.split(" ").map(Number);
    
    for (let idx=i; idx<j+1; idx++){
        box[idx-1] = k;
    }
})

console.log(...box)

๐Ÿง‘๐Ÿป‍๐Ÿ’ป ์ด ๋ฌธ์ œ๋ฅผ ํ’€๋ฉด์„œ ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ

์ธ๋ฑ์Šค๋ฅผ ์ž„์˜๋กœ ๋ฐ”๊พธ๊ธฐ ๋ณด๋‹จ ์ตœ๋Œ€ํ•œ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๋Š”๊ฒŒ ์ข‹๋‹ค.

๋นˆ ๋ฐ•์Šค๋Š” 0์œผ๋กœ ํ‘œ์‹œํ–ˆ์–ดํ– ํ–ˆ๋Š”๋ฐ false๋กœ ๋จผ์ € ์ดˆ๊ธฐํ™” ํ•œ ๊ฒƒ์ด ์˜ค๋ฅ˜๋ฅผ ๋‚ด๋Š” ์›์ธ์ด ๋˜์—ˆ๋‹ค.

728x90

๋Œ“๊ธ€