-
[๋ฐฑ์ค] 11659๋ฒ: ๊ตฌ๊ฐ ํฉ ๊ตฌํ๊ธฐ 4 (Node.js)๐ ์๊ณ ๋ฆฌ์ฆ/๋ฐฑ์ค 2024. 9. 5. 14:59
์ ๊ทผ๋ฐฉ์
์ฒ์์ ํ๊ธฐ ์์ํ์ ๋๋, ์ฃผ์ด์ง ๋ฐฐ์ด์ a๋ฒ~b๋ฒ๊น์ง ์๋ฅด๊ณ ๋ํ๊ณ ์ฝ์!.... ์ด๋ผ๊ณ ๋๋ฌด ์์ผํ๊ฒ ํ์์์ต๋๋ค.
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 () { const num = input[0].split(" ")[1]; const arr = input[1].split(" ").map(Number); input.splice(0, 2); const jogun = input.map((v) => v.split(" ")); for (let i = 0; i < jogun.length; i++) { let start = jogun[i][0]; let end = jogun[i][1]; let sum = arr.slice(start - 1, end).reduce((a, b) => a + b, 0); console.log(sum); } });
์ด๋์ ๋ด๋๋ ๋ถ๋๋ฌ์ด ๋ด ์ฝ๋..๐ฅ
๊ฒฐ๊ณผ๊ฐ์ ๊ด์ฐฎ๊ฒ ๋์์ผ๋,
๋น์ฐํ๊ฒ ๋จ๋ ๋ฉ๋ชจ๋ฆฌ ์ด๊ณผ๋ก ์ธํด ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ํ๊ธฐ ์์ํ์ต๋๋ค!
์๋ฅผ ๋ค์ด [5, 4, 3, 2, 1] ๋ฐฐ์ด์์ 1๋ถํฐ 3๊น์ง์ ์ธ๋ฑ์คํฉ์ ๊ตฌํ๋ ค๋ฉด
4 + 3 + 2๋ฅผ ๋ํด์ผํ๋๊ฑด๋ฐ, ์ด๋ ๋งค๋ฒ ๋ฐฐ์ด์ ์ํํ๋ฉด์ ๋ํ๊ฒ ๋ฉ๋๋ค.
์ด๋ ๊ฒ ํ๋ฉด ์๊ฐ๋ณต์ก๋๊ฐ O(N)์ด ๋๋๋ฐ, ์ฆ ๋ฐฐ์ด ํฌ๊ธฐ๋งํผ ๋ฐ๋ณตํด์ผ ํฉ๋๋ค.
ํ์ง๋ง ํน์ ๊ตฌ๊ฐ์ ํฉ์ ๋ฏธ๋ฆฌ ๊ตฌํด๋์ผ๋ฉด,
์๋ฅผ ๋ค์ด Array[3] - Array[0] ๊ณผ ๊ฐ์ด ๋ฐฐ์ด์ ๋งค๋ฒ ์ํํ๋ ๊ฒ์ด ์๋ ์ ํด์ง ๊ตฌ๊ฐ์์์ ๊ณ์ฐ์ ํ๊ฒ ๋๋ฏ๋ก
์๊ฐ๋ณต์ก๋๊ฐ O(1)์ด ๋ฉ๋๋ค.
O(N) : ์ ๋ ฅ ํฌ๊ธฐ์ ๋น๋กํด์ ์๊ฐ์ด ๋์ด๋๋ ๊ฒฝ์ฐ. ์ฆ, ๋ฐฐ์ด์์ ๋ถ๋ถํฉ์ ๋งค๋ฒ ์ง์ ๊ณ์ฐํ๋ ๊ฒฝ์ฐ, ๋ฐฐ์ด์ ํฌ๊ธฐ๋งํผ ์ฐ์ฐ์ ํด์ผ ํ๋ฏ๋ก O(N)์ ์๊ฐ์ด ๊ฑธ๋ฆฝ๋๋ค.
O(1) : ์ ๋ ฅ ํฌ๊ธฐ์ ์๊ด์์ด ์ผ์ ํ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ ๊ฒฝ์ฐ. ์ฆ, ๋ฏธ๋ฆฌ ๊ณ์ฐ๋ ๋ฐฐ์ด์ ์ฌ์ฉํด์ ํน์ ๊ตฌ๊ฐ์ ํฉ์ ๊ตฌํ๋ ๊ฒฝ์ฐ O(1)์ ํด๋นํฉ๋๋ค.ํ์ด โฐ
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 () { // [N, M] ๊ฐ ์ค์ const [N, M] = input[0].split(" ").map(Number); // ์ํํ ๋ฐฐ์ด ์ค์ const arr = input[1].split(" ").map(Number); input.splice(0, 2); // jogun = [[1, 3], [2, 4], [5, 5]] const jogun = input.map((v) => v.split(" ")); // sumArr = [0, 0, 0, 0, 0, 0] const sumArr = Array(N + 1).fill(0); for (let i = 1; i <= N; i++) { // sumArr = [0, 5, 9, 12, 14, 15] sumArr[i] = sumArr[i - 1] + arr[i - 1]; } for (let i = 0; i < M; i++) { // jogun[0] = 1, 3 // jogun[1] = 2, 4 // jogun[2] = 5, 5 const [start, end] = jogun[i]; // ex) jogun[0]์์๋ 1๋ถํฐ 3๊น์ง์ ์ซ์์ ํฉ์ด๋ฏ๋ก 12๊ฐ ๋์ต๋๋ค. // ๋ฏธ๋ฆฌ๊ณ์ฐ๋ 12์์ 0์ ๋นผ๋ฉด์ ๊ทธ๋๋ก 12๋ฅผ ์ถ๋ ฅ const result = sumArr[end] - sumArr[start - 1]; console.log(result); } });
๋ฐฑ์ค 11659๋ฒ ๋งํฌ
'๐ ์๊ณ ๋ฆฌ์ฆ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 24263๋ฒ: ์๊ณ ๋ฆฌ์ฆ ์์ - ์๊ณ ๋ฆฌ์ฆ์ ์ํ ์๊ฐ 2 (Node.js) (0) 2024.09.09 [๋ฐฑ์ค] 24262๋ฒ: ์๊ณ ๋ฆฌ์ฆ ์์ - ์๊ณ ๋ฆฌ์ฆ์ ์ํ ์๊ฐ 1 (Node.js) (0) 2024.09.09 [๋ฐฑ์ค] 5430๋ฒ: AC (Node.js) (0) 2024.09.04 [๋ฐฑ์ค] 2776๋ฒ: ์๊ธฐ์ (Node.js) (0) 2024.09.03 [๋ฐฑ์ค] 17478๋ฒ: ์ฌ๊ทํจ์๊ฐ ๋ญ๊ฐ์? (Node.js) (2) 2024.09.03