์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์•Œ๊ณ ๋ฆฌ์ฆ˜

[์ธํ”„๋Ÿฐ ์„น์…˜7] ํšŒ์˜์‹ค ๋ฐฐ์ • (Javascript)

์€์ง„ 2021. 6. 27. 21:21

์ธํ”„๋Ÿฐ

๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป๋ฌธ์ œ๋งํฌ

[์ธํ”„๋Ÿฐ ์„น์…˜7] ํšŒ์˜์‹ค ๋ฐฐ์ • (Javascript)
์œ ๋ฃŒ ๊ฐ•์˜์ธ ๊ด€๊ณ„๋กœ ๋ฌธ์ œ ์„ค๋ช…์€ ์ƒ๋žตํ•ฉ๋‹ˆ๋‹ค.


โœ๏ธIdea Sketch

2021-06-27

1. ํšŒ์˜ ๊ฒน์น˜์ง€ ์•Š๊ฒŒ, ์ตœ๋Œ€ ์ˆ˜์˜ ํšŒ์˜

2. ๊ทธ๋ฆฌ๋””?

  • ํ˜„์žฌ ๋‹จ๊ณ„์—์„œ ๊ฐ€์žฅ ์ตœ์„ ์˜ ์„ ํƒ์„ ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜

3. ํšŒ์˜์‹ค ์‚ฌ์šฉ์‹œ๊ฐ„์ด ์งง์€ ์ˆœ์œผ๋กœ ์ •๋ ฌ

4. for ๋ฐ˜๋ณต๋ฌธ

  • ์ฒซ๋ฒˆ์งธ ํšŒ์˜ ์ข…๋ฃŒ์‹œ์  = end
  • ์ดˆ๊ธฐ๊ฐ’ cnt = 1
  • ํšŒ์˜ ์‹œ์ž‘์‹œ์ ์ด end๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์€ ๊ฒฝ์šฐ cnt++, end๋Š” ํ•ด๋‹น ํšŒ์˜์˜ ์ข…๋ฃŒ์‹œ์ 
let cnt = 1;
let end = arr[0][1];
for (let i=1; i<arr.length; i++) {
if (arr[i][0] >= end) {
cnt++;
end = arr[i][1];
}
}

๋ฌธ์ œ์ 
์‹œ์ž‘ํ•˜์ž๋งˆ์ž ์ข…๋ฃŒํ•˜๋Š” ํšŒ์˜๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ
๊ธฐ๋Œ€๊ฒฐ๊ณผ์™€ ์‹คํ–‰๊ฒฐ๊ณผ๊ฐ€ ๋‹ค๋ฆ„


5. ํ•ด๊ฒฐ๋ฐฉ๋ฒ•

  • ํฌ์˜ ์ข…๋ฃŒ์‹œ๊ฐ„์ด ๊ฐ€์žฅ ๋น ๋ฅธ ์ˆœ์œผ๋กœ ์ •๋ ฌ
  • ํšŒ์˜ ์ข…๋ฃŒ์‹œ๊ฐ„์ด ๊ฐ™์€ ๊ฒฝ์šฐ, ํšŒ์˜ ์‹œ์ž‘์‹œ๊ฐ„ ์ˆœ์œผ๋กœ ์ •๋ ฌ

ํšŒ์˜ ์‹œ์ž‘์‹œ๊ฐ„์„ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๋Š” ์ด์œ 
[3, 3], [1, 3] ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๋ฉด ๋‘๋ฒˆ์งธ ํšŒ์˜๋ฅผ ๋ฐฐ์ •ํ•  ์ˆ˜ ์—†๋‹ค.

sort((a, b) => a[1] !== b[1] ? a[1]-b[1] : a[0]-b[0]);


โœ๏ธ์†Œ์Šค์ฝ”๋“œ

2021-06-27

function solution(arr) {
arr.sort((a, b) => a[1] !== b[1] ? a[1] - b[1] : a[0] - b[0]);
let cnt = 1;
let end = arr[0][1];
for (let i = 1; i < arr.length; i++) {
if (arr[i][0] >= end) {
cnt++;
end = arr[i][1];
}
}
return cnt;
}