๊ด€๋ฆฌ ๋ฉ”๋‰ด

๐Ÿ–ฅ dev-ruby

[๋ฐฑ์ค€-1946] ์‹ ์ž…์‚ฌ์› | node.js | silver1 ๋ณธ๋ฌธ

๋ฐฑ์ค€

[๋ฐฑ์ค€-1946] ์‹ ์ž…์‚ฌ์› | node.js | silver1

ruby_s 2022. 5. 26. 10:18
728x90
๋ฐ˜์‘ํ˜•
SMALL

๋ฌธ์ œ

https://www.acmicpc.net/problem/1946

 

1946๋ฒˆ: ์‹ ์ž… ์‚ฌ์›

์ฒซ์งธ ์ค„์—๋Š” ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ๊ฐœ์ˆ˜ T(1 ≤ T ≤ 20)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ์ฒซ์งธ ์ค„์— ์ง€์›์ž์˜ ์ˆซ์ž N(1 ≤ N ≤ 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ ์ค„์—๋Š” ๊ฐ๊ฐ์˜ ์ง€์›์ž์˜ ์„œ๋ฅ˜์‹ฌ์‚ฌ ์„ฑ

www.acmicpc.net

 

ํ’€์ด

function solve(n, ranking) {
  ranking.sort((a, b) => a[0] - b[0]);

  let answer = 1;
  let minRank = ranking[0][1];
  for (let i = 1; i < n; i++) {
    const rank = ranking[i][1];
    if (rank < minRank) {
      minRank = rank;
      answer++;
    }
  }
  return answer;
}

const filePath =
  process.platform === "linux" ? "/dev/stdin" : "๋ฐฑ์ค€/silver/1946/testcase.txt";
const input = require("fs")
  .readFileSync(filePath)
  .toString()
  .trim()
  .split("\n");
for (let i = 1; i < input.length; ) {
  const n = +input[i];
  console.log(
    solve(n, input.slice(i + 1, i + 1 + n).map((rank) => rank.split(" ").map((num) => +num)))
  );
  i += n + 1;
}

 

๋ฌธ์ œ ์ดํ•ด๊ฐ€ ์•ˆ๋ผ์„œ ํ—ค๋งธ๋‹ค.. ์ฃผ์–ด์ง„ ์ˆซ์ž๋Š” ์ ์ˆ˜๊ฐ€ ์•„๋‹Œ ๋“ฑ์ˆ˜์ด๋‹ค. ์•„๋ž˜์ฒ˜๋Ÿผ ์ˆœ์œ„๊ฐ€ ๋ผ์žˆ๋‹ค๊ณ  ํ–ˆ์„ ๋•Œ, ์„œ๋ฅ˜์˜ ์ˆœ์œ„๋Š” ๋ณ€๋™๋˜์ง€ ์•Š๊ณ  ๋ฉด์ ‘์— ๋”ฐ๋ผ ๋ฝ‘ํž ์ง€ ๋ง์ง€๊ฐ€ ๊ฒฐ์ •๋œ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๋‘˜ ์ค‘ ํ•˜๋‚˜๋ผ๋„ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋ณด๋‹ค ๋†’์€ ๋“ฑ์ˆ˜์ผ ๊ฒฝ์šฐ ๋ฝ‘ํžˆ๋Š” ์ •์ฑ…์ด๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฅ˜๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๋ฉด ์„œ๋ฅ˜๋Š” ๋ฌด์กฐ๊ฑด ํ†ต๊ณผํ•œ๋‹ค๋Š” ์ „์ œํ•˜์— ๋ฉด์ ‘ ๋“ฑ์ˆ˜๋ฅผ ์ฒดํฌํ•˜๋Š”  ๊ฒƒ์ด๋‹ค.

     ์„œ๋ฅ˜  ๋ฉด์ ‘
A     1      4
B     2     3
C     3     2
D     4     1
E     5     5

๋จผ์ € A์˜ ๋ฉด์ ‘ ๋“ฑ์ˆ˜๋ฅผ ์ตœ์†Œ ๋“ฑ์ˆ˜๋กœ ๋‘๊ณ  B๋ถ€ํ„ฐ ๋น„๊ต๋ฅผ ์‹œ์ž‘ํ•œ๋‹ค. B์˜ ๋ฉด์ ‘ ๋“ฑ์ˆ˜๊ฐ€ ํ˜„์žฌ ์ตœ์†Œ ๋“ฑ์ˆ˜๋ณด๋‹ค ๋†’์„ ๊ฒฝ์šฐ B๋Š” ์„ ๋ฐœ๋œ๋‹ค. 
๊ทธ๋Ÿผ ํ˜„์žฌ ์ตœ์†Œ ๋“ฑ์ˆ˜๋Š” B์˜ ๋“ฑ์ˆ˜์ธ 3์ผ ๋  ๊ฒƒ์ด๊ณ , C๋ฅผ ๋น„๊ตํ•œ๋‹ค. C์˜ ๋ฉด์ ‘ ๋“ฑ์ˆ˜๋Š” 2์ด๋ฏ€๋กœ ํ˜„์žฌ ์ตœ์†Œ ๋“ฑ์ˆ˜๋ณด๋‹ค ๋†’๋‹ค. ๋”ฐ๋ผ์„œ C๋„ ์„ ๋ฐœ๋œ๋‹ค. ์ด๋Ÿฐ์‹์œผ๋กœ ๋น„๊ตํ•˜๋‹ค๋ณด๋ฉด E๋ฅผ ๋น„๊ตํ–ˆ์„ ๋•Œ, ์ตœ์†Œ ๋“ฑ์ˆ˜์ธ 1๋ณด๋‹ค ๋‚ฎ์œผ๋ฏ€๋กœ E๋นผ๊ณ  ๋ชจ๋‘๊ฐ€ ์„ ๋ฐœ๋˜๊ฒŒ ๋œ๋‹ค.

728x90
๋ฐ˜์‘ํ˜•
LIST