[๋ฐฑ์ค 1946๋ฒ] ์ ์ ์ฌ์ - ์๋ฐ์คํฌ๋ฆฝํธ(nodejs)
https://www.acmicpc.net/problem/1946
1946๋ฒ: ์ ์ ์ฌ์
์ฒซ์งธ ์ค์๋ ํ ์คํธ ์ผ์ด์ค์ ๊ฐ์ T(1 ≤ T ≤ 20)๊ฐ ์ฃผ์ด์ง๋ค. ๊ฐ ํ ์คํธ ์ผ์ด์ค์ ์ฒซ์งธ ์ค์ ์ง์์์ ์ซ์ N(1 ≤ N ≤ 100,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ N๊ฐ ์ค์๋ ๊ฐ๊ฐ์ ์ง์์์ ์๋ฅ์ฌ์ฌ ์ฑ
www.acmicpc.net
const fs = require('fs');
let input = fs.readFileSync('dev/stdin').toString().trim().split('\n');
input.shift();
let result = [];
for (let i = 0; i < input.length; i++) {
if (input[i].length == 1) {
result.push(input.slice(i + 1, i + Number(input[i]) + 1));
i += Number(input[i]);
}
}
result = result.map((v1) => v1.map((v2) => v2.split(' ').map((v) => +v)));
result.forEach((element) => element.sort((a, b) => a[0] - b[0]));
// ์
๋ ฅ๊ฐ ์กฐ์ ๋ [ [[1,4],[2,3],[3,2],[4,1],[5,5]], [[1,4],[2,5]...]] 3์ฐจ์ ๋ฐฐ์ด ํ์
// ์ค์ ๋ฌธ์ ํ์ด
result.forEach((v) => {
let count = 1;
let min = v[0][1];
for (let i = 1; i < v.length; i++) {
if (v[i][1] < min) {
count++;
min = Math.min(min, v[i][1]);
}
}
console.log(count);
});
์ ๋ ฅ๊ฐ์ ์๊ฐ์ ์ฐ๊ณ , ๋ฌธ์ ๋ฅผ ํ์ด๋ณด๋ ๊ณ์ ๋ฐํ์ ์ค๋ฅ๊ฐ ๋์จ๋ค.
๋ฐ๋ก๋ก ๋์จ ์ ๋ ฅ๊ฐ์ ๋ํด ๋ชจ๋ ์ ๋ต์ด๊ณ , ๋ก์ง์ ๋ฌธ์ ๊ฐ ์๋ค๊ณ ์๊ฐํ๋ค.
๊ทธ๋ ๋ฌธ์ ์ง๋ฌธ์์ ํด๋น ๊ธ์ ๋ณด๊ฒ๋์๋ค.
๋ฌธ์ ๋ ๋ง์๋ค๊ณ ์๊ฐํ๊ณ ๋์ด๊ฐ ์์ ์ด๋ค.. readline๊น์ง ๊ตณ์ด ๋ฐฐ์ธ ํ์๊ฐ ์๋ค๊ณ ์๊ฐํ๋ค.
๋ก์ง์ ์ ๋ ฅ๊ฐ์ 3์ฐจ์ ๋ฐฐ์ด๋ก ๋ง๋ ํ
1. ์๋ฅ ์ ์ ์์๋ณ๋ก ์ ๋ ฌํ๋ค.
2. ์๋ฅ 1๋ฑ์ ๋ฌด์กฐ๊ฑด ํต๊ณผ์ด๋ฏ๋ก count = 1๋ถํฐ ์์
3. ์๋ฅ 2 ~ ๊ผด๋ฑ๊น์ง ์ํํ๋ฉฐ ์๋ฅ, ๋ฉด์ ๋ ๋ค ๋ฎ์ ๊ฐ๋ค์ ๋ฌด์ํ๋ค.
4. ๋ง์ฝ ๋ฉด์ ์์๊ฐ ์๋ฅ ์ ์์๋ณด๋ค ๋์ผ๋ฉด count++ ํด์ค๋ค.
์ ์์ฌํญ - ์๋ฅ, ๋ฉด์ ์ด ์๊ธฐ๋ณด๋ค ๋์ ์ฌ๋์ด ์์ผ๋ฉด ๊ทธ ์ฌ๋์ ํ๋ฝ์ด๋ฏ๋ก, ์๋ฅ ์์๋ก ์ ๋ ฌํ๊ณ , ๊ณ์ ๋ฉด์ ์์๊ฐ ๋์ ๊ฒ์ผ๋ก ์ด๊ธฐํ ์์ผ์ค๋ค(์ด์ฐจํผ ๋ค๋ก ๊ฐ์๋ก ์๋ฅ์ ์๋ ๋ฎ์์ง๋ฏ๋ก ๋ฉด์ ์ผ๋ก๋ง ํ๋ณ ๊ฐ๋ฅ!)