[๋ฐฑ์ค-11497] ํต๋๋ฌด ๊ฑด๋๋ฐ๊ธฐ | node.js | silver1
๋ฌธ์
https://www.acmicpc.net/problem/11497
11497๋ฒ: ํต๋๋ฌด ๊ฑด๋๋ฐ๊ธฐ
๋จ๊ท๋ ํต๋๋ฌด๋ฅผ ์ธ์ ๋๊ณ ๊ฑด๋๋ฐ๊ธฐ๋ฅผ ์ข์ํ๋ค. ๊ทธ๋์ N๊ฐ์ ํต๋๋ฌด๋ฅผ ์ํ์ผ๋ก ์ธ์ ๋๊ณ ๋ฐ์ด๋๋ ค๊ณ ํ๋ค. ๋จ๊ท๋ ์ํ์ผ๋ก ์ธ์ ํ ์ ํต๋๋ฌด๋ก ๊ฑด๋๋ฐ๋๋ฐ, ์ด๋ ๊ฐ ์ธ์ ํ ํต๋๋ฌด์ ๋์ด
www.acmicpc.net
ํ์ด
function solve(n, tree) {
tree.sort((a, b) => a - b);
let maxLen = 0;
for (let i = 2; i < n; i++) {
maxLen = Math.max(maxLen, Math.abs(tree[i] - tree[i - 2]));
}
return maxLen;
}
const filePath =
process.platform === "linux"
? "/dev/stdin"
: "๋ฐฑ์ค/silver/11497/testcase.txt";
const input = require("fs")
.readFileSync(filePath)
.toString()
.trim()
.split("\n");
for (let i = 1; i < input.length - 1; ) {
const n = +input[i];
const tree = input[i + 1].split(" ").map((el) => +el);
i += 2;
console.log(solve(n, tree));
}
์ด ๋ฌธ์ ๋ ์๋ฅผ ๋ค์ด์ ์ค๋ช ํด๋ณด๊ฒ ๋ค.
1, 3, 5, 7, 9, 12, 14, 16, 18, 20
๋ค์๊ณผ ๊ฐ์ด ์๋ค๊ณ ๊ฐ์ ํ์ ๋, ์๋์ ๊ฐ์ด ๋ฐฐ์น ํ์ ๋ ๋์ด๋์ ์ต์๊ฐ์ด ๋์ค๊ฒ ๋๋ค. ์ด๋ ๋์ด๋๋ 5๊ฐ ๋๋ค.
1, 5, 9, 14, 18, 20, 16, 12, 7, 3
์ฃผ์ด์ง ๋ฐฐ์ด์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ ๋ค ์์๋๋ก ์๋์ ๋ฐฐ์น์ํจ ๊ฒ์ด๋ค. ๊ทธ ์ด์ ๋ 1, 2 , 3, 100, 101, •••๋ฅผ ์๋ก ๋ค์ด์ ์ค๋ช
ํ๊ฒ ๋ค. 3๊ณผ 100์ ์ธ์ ์์ผ์ผ๋ง ๋์ด๋์ ์ต์๊ฐ์ด ๋์ฌ ๊ฒ ๊ฐ์ง๋ง ๊ทธ๋ ์ง ์๋ค. 3๊ณผ 100์ ์ธ์ ์ํฌ ๊ฒฝ์ฐ,
๋ง์ฝ, 3์ ์ผ์ชฝ์ 1์ด๋ 2์ค ํ๋๊ฐ ๋์จ๋ค๋ฉด ๊ทธ 1์ด๋ 2๋ 100๋ณด๋ค ํฐ ์ด๋ค ๊ฐ๋ค๊ณผ ์ธ์ ๋ ์ ๋ฐ์ ์์ ๊ฒ์ด๋ค. ๊ทธ๋ ๋ค๋ฉด 3๊ณผ 100์ ์ฐจ์ด๋ณด๋ค ๋ ํฐ ์ฐจ์ด๊ฐ์ด ๋์ค๊ฒ ๋๋ฏ๋ก ๋์ด๋์ ์ต์๊ฐ์ ์ฌ๋ฐ๋ฅด๊ฒ ๋์ถํ ์ ์๋ค.
๋ง์ฝ, 3์ ์ผ์ชฝ์ 100๋ณด๋ค ํฐ ๊ฐ์ด ์ธ์ ํ๊ฒ ๋๋ค๋ฉด 3๊ณผ 100์ ์ฐจ์ด๋ณด๋ค 3๊ณผ ์ผ์ชฝ์ ์ธ์ ํ ๊ทธ ๊ฐ๊ณผ์ ์ฐจ์ด๊ฐ ๋ ์ปค์ง๊ธฐ ๋๋ฌธ์ 3๊ณผ 100์ด ์ต๋ ๋์ด๋๊ฐ ์๋๊ฒ ๋๋ค. ๋ฐ๋ผ์ ์ค๋ฆ์ฐจ์๋ ๋ฐฐ์ด์ ์์ ๊ฐ๋ถํฐ ์ ๋์์๋ถํฐ ๋ฒ๊ฐ์๊ฐ๋ฉฐ ๋ฐฐ์นํด์ผ ํ๋ค.
1 => 1, 3 => 1, 5, 3 => 1, 5, 7, 3 => ••• => 1, 5, 9, 14, 18, 20, 16, 12, 7, 3
๊ฒฐ๊ตญ, ํต๋๋ฌด๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ ๋ค i๋ฒ์งธ ๊ฐ๊ณผ i-2๋ฒ์งธ ๊ฐ์ ๋น๊ตํ ๊ฒ๊ณผ ๊ฐ์ ๋ก์ง์ด๋ค.
1, 3, 5, 7, ••• => 1๊ณผ 5๋น๊ต, 3๊ณผ 7๋น๊ต, •••