๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Algorithm

[Algorithm] ๋‹จ์†์นด๋ฉ”๋ผ

๐Ÿ“‹ ๋ฌธ์ œ

๊ณ ์†๋„๋กœ๋ฅผ ์ด๋™ํ•˜๋Š” ๋ชจ๋“  ์ฐจ๋Ÿ‰์ด ๊ณ ์†๋„๋กœ๋ฅผ ์ด์šฉํ•˜๋ฉด์„œ ๋‹จ์†์šฉ ์นด๋ฉ”๋ผ๋ฅผ ํ•œ ๋ฒˆ์€ ๋งŒ๋‚˜๋„๋ก ์นด๋ฉ”๋ผ๋ฅผ ์„ค์น˜ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๊ณ ์†๋„๋กœ๋ฅผ ์ด๋™ํ•˜๋Š” ์ฐจ๋Ÿ‰์˜ ๊ฒฝ๋กœ routes๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ๋ชจ๋“  ์ฐจ๋Ÿ‰์ด ํ•œ ๋ฒˆ์€ ๋‹จ์†์šฉ ์นด๋ฉ”๋ผ๋ฅผ ๋งŒ๋‚˜๋„๋ก ํ•˜๋ ค๋ฉด ์ตœ์†Œ ๋ช‡ ๋Œ€์˜ ์นด๋ฉ”๋ผ๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•˜๋Š”์ง€๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•˜์„ธ์š”.

 

์ œํ•œ ์‚ฌํ•ญ

  • ์ฐจ๋Ÿ‰์˜ ๋Œ€์ˆ˜๋Š” 1๋Œ€ ์ด์ƒ 10,000๋Œ€ ์ดํ•˜์ž…๋‹ˆ๋‹ค.
  • routes์—๋Š” ์ฐจ๋Ÿ‰์˜ ์ด๋™ ๊ฒฝ๋กœ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ routes[i][0]์—๋Š” i๋ฒˆ์งธ ์ฐจ๋Ÿ‰์ด ๊ณ ์†๋„๋กœ์— ์ง„์ž…ํ•œ ์ง€์ , routes[i][1]์—๋Š” i๋ฒˆ์งธ ์ฐจ๋Ÿ‰์ด ๊ณ ์†๋„๋กœ์—์„œ ๋‚˜๊ฐ„ ์ง€์ ์ด ์ ํ˜€ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ฐจ๋Ÿ‰์˜ ์ง„์ž…/์ง„์ถœ ์ง€์ ์— ์นด๋ฉ”๋ผ๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ์–ด๋„ ์นด๋ฉ”๋ผ๋ฅผ ๋งŒ๋‚œ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผํ•ฉ๋‹ˆ๋‹ค.
  • ์ฐจ๋Ÿ‰์˜ ์ง„์ž… ์ง€์ , ์ง„์ถœ ์ง€์ ์€ -30,000 ์ด์ƒ 30,000 ์ดํ•˜์ž…๋‹ˆ๋‹ค.

 

์ž…์ถœ๋ ฅ ์˜ˆ

[[-20,-15], [-14,-5], [-18,-13], [-5,-3]] 2

 

โœ๏ธ ํ’€์ด

๊ฐ€์žฅ ์ ‘๊ทผํ–ˆ๋˜ ๋ฐฉ๋ฒ•์€ ์ผ์ผํžˆ ํ‘œ์‹œ๋ฅผ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด์—ˆ๋‹ค. ๊ธธ์ด 60000์˜ ๋ฐฐ์—ด ๋‘๊ณ  ์ด ๊ตฌ๊ฐ„์„ ์ง€๋‚˜๊ฐ”๋Š”์ง€ ํ™•์ธ์„ ํ•˜๋ฉด์„œ ์ฒ˜์Œ ์ง€๋‚˜๊ฐ€๋Š” ๊ธธ์ด๋ผ๋ฉด answer๋ฅผ ์ฆ๊ฐ€์‹œ์ผœ์ฃผ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ํ•˜์ง€๋งŒ ์ƒ๊ฐํ•ด๋ณด๋‹ˆ ๋“ค์–ด์˜จ, ๋‚˜๊ฐ„ ์‹œ์ ์„ ์ˆœํšŒํ•ด์ค˜์•ผ ํ•˜๋Š”๋ฐ [-30000, 30000] ๊ฐ™์€ ๊ฐ’์ด ๋งŽ์ด ๋“ค์–ด์˜ค๋ฉด ๋‹น์—ฐํžˆ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚˜๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ•ด์„œ ์‹œ๋„ํ•˜์ง€ ์•Š์•˜๋‹ค. ์ด ๋ฐฉ๋ฒ•์„ ์ƒ๊ฐํ•˜๋‹ค๊ฐ€ ์ด์ „ ์ฐจ๊ฐ€ ๋‚˜๊ฐ„ ์‹œ์ ๋ณด๋‹ค ๋‹ค์Œ ์ฐจ๊ฐ€ ๋“ค์–ด์˜ฌ ๋•Œ ์ž‘๋‹ค๋ฉด ๊ทธ๋•Œ๋Š” ์นด๋ฉ”๋ผ๋ฅผ ์„ค์น˜ํ•˜์ง€ ์•Š์•„๋„ ๋˜๋Š”๊ตฌ๋‚˜๋ฅผ ๊นจ๋‹ซ๊ฒŒ ๋˜์—ˆ๋‹ค. ๋„๋กœ๋ฅผ ๋‚˜๊ฐ„ ์‹œ์ ์„ ๊ธฐ์ค€์œผ๋กœ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ •๋ ฌ์‹œ์ผœ์ฃผ๊ณ  ์ดˆ๊ธฐ ๋น„๊ต๊ฐ’(๋‚˜๊ฐ„์‹œ์ )์„ ์ตœ์†Œ๊ฐ’ -30000์œผ๋กœ ์ดˆ๊ธฐํ™”ํ–ˆ๋‹ค. ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ํ˜„์žฌ ๋น„๊ต๊ฐ’๋ณด๋‹ค ์ฐจ๊ฐ€ ๋“ค์–ด์˜จ ์‹œ์ ์ด ํฌ๋‹ค๋ฉด ๊ฒน์น˜๋Š” ๋ถ€๋ถ„์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์นด๋ฉ”๋ผ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ๋น„๊ต๊ฐ’์„ ๋‚˜๊ฐ„ ์‹œ์ ์œผ๋กœ ๋ณ€๊ฒฝ์‹œ์ผœ์คฌ๋‹ค.

 

 

โŒจ๏ธ ์ฝ”๋“œ

function solution(routes) {
  var answer = 0;
  let compare = -30000;

  routes.sort((a, b) => a[1] - b[1]);

  for (const route of routes) {
    const [start, end] = route;

    if (compare < start) {
      answer += 1;
      compare = end;
    }
  }

  return answer;
}