๊ณต๋ฃ๊ธฐ
๐ ๋ฌธ์ ๋งํฌ 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๋ก ๋จผ์ ์ด๊ธฐํ ํ ๊ฒ์ด ์ค๋ฅ๋ฅผ ๋ด๋ ์์ธ์ด ๋์๋ค.
'{Algorithms}' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
09.27.22{์ฝ๋ฉ์ผ๊ธฐ} ๋ฐฑ์ค 300์ ํ 2023 ์นด์นด์ค ํ๋ฐ๊ธฐ ์ฝํ ๋ฐ 2022๋ผ์ธ ์ฝํ ํ๊ธฐ (0) | 2022.09.27 |
---|
๋๊ธ