
๊ฒฝ๋ก ์ ๊ฐ์ฅ ์งง์ ๊ฒฝ๋ก๋ฅผ ์ฐพ๋ ์ต๋จ๊ฒฝ๋ก ์๊ณ ๋ฆฌ์ฆ์ ๊ทธ๋ํ์ ๊ฐ์ค์น ์ฌ๋ถ, ๊ฐ์ค์น์ ๋ฒ์์ ๋ฐ๋ผ ์ฌ์ฉํด์ผ ํ๋ ์๊ณ ๋ฆฌ์ฆ์ด ๋ฌ๋ผ์ง๋ค.
๋ณดํต ๊ฐ์ค์น๊ฐ ์๋ ๊ฒฝ์ฐ๋ BFS, ๊ฐ์ค์น๊ฐ ์์์ผ ๊ฒฝ์ฐ ๋ค์ต์คํธ๋ผ, ๊ฐ์ค์น๊ฐ ์์์ผ ๊ฒฝ์ฐ ๋ฒจ๋ง-ํฌ๋๋ฅผ ์ฌ์ฉํ๋ค.
์ด ํฌ์คํธ์์๋ ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ์ ์ ๋ฆฌํ๋ค.
๋์ ์๋ฆฌ๋ ์ถ๋ฐ ๋ ธ๋๋ฅผ ๊ธฐ์ค์ผ๋ก ๋น์ฉ์ด ์ ์ ๋ ธ๋๋ฅผ ์ ํํ๊ณ , ๊ทธ ๋ ธ๋๋ฅผ ๊ฑฐ์ณ ๋ค๋ฅธ ๋ ธ๋๋ก ๊ฐ๋ ๊ฒฝ๋ก๋ฅผ ์ต์ ๋น์ฉ์ผ๋ก ์ ๋ฐ์ดํธ ํ๋ ๊ฒ์ด๋ค.
- ์ถ๋ฐ ๋ ธ๋ ์ค์
- ์ต๋จ ๊ฑฐ๋ฆฌ ํ ์ด๋ธ์ ์ด๊ธฐํ (๋ชจ๋ ๊ฑฐ๋ฆฌ์ ์ด๊ธฐ๊ฐ์ด ๋ฌดํ๋๋ผ๊ณ ๊ฐ์ )
- ๋ฐฉ๋ฌธํ์ง ์์ ๋ ธ๋ ์ค์์ ์ต๋จ ๊ฑฐ๋ฆฌ๊ฐ ๊ฐ์ฅ ์งง์ ๋ ธ๋ ์ ํ
- ํด๋น ๋ ธ๋๋ฅผ ๊ฑฐ์ณ ๋ค๋ฅธ ๋ ธ๋๋ก ๊ฐ๋ ๋น์ฉ์ ๊ณ์ฐํด ์ต๋จ ๊ฑฐ๋ฆฌ ํ ์ด๋ธ ๊ฐฑ์
3,4์ ๊ณผ์ ๋ฐ๋ณต
์์ ๊ณผ์ ์ ๊ทธ๋ฆผ์ผ๋ก ์์๋ณด์
๋จผ์ ์ด 6๊ฐ์ ๋
ธ๋๊ฐ ์๊ณ ๊ฐ ๋
ธ๋ ์ฌ์ด์ ๋น์ฉ์ด ์์ ๊ฐ๋ค๊ณ ์ ์ํ์
์ด ๋ ์ต๋จ๊ฑฐ๋ฆฌ ํ
์ด๋ธ์ ์์๋
ธ๋์ธ 1๋ฒ ๋
ธ๋๋ฅผ ์ ์ธํ๊ณ ๋ฌดํ๋๋ก ์ ์ํ๋ค.
1๋ฒ ๋
ธ๋๋ ์์ ๋
ธ๋์ด๊ธฐ ๋๋ฌธ์ 0์ผ๋ก ์ด๊ธฐํ ํด์ค๋ค. (1๋ฒ์์ 1๋ฒ์ผ๋ก ๊ฐ๋ ๋น์ฉ์ 0์ด๊ธฐ ๋๋ฌธ)
๊ทธ ํ ๋ฐฉ๋ฌธํ์ง ์์ ๋
ธ๋ ์ค์์ ์ต๋จ๊ฑฐ๋ฆฌ๊ฐ ๊ฐ์ฅ ์งง์ ๋
ธ๋๋ฅผ ์ ํํด์ผ ํ๋ค.
ํ์ฌ ๋ชจ๋ ๋
ธ๋๋ฅผ ๋ฐฉ๋ฌธํ์ง ์์๊ณ ๊ทธ ์ค ์ต๋จ๊ฑฐ๋ฆฌ๊ฐ ๊ฐ์ฅ ์งง์ ๋
ธ๋์ธ 1๋ฒ ๋
ธ๋๋ฅผ ์ ํํ๋ค.
๊ทธ ํ 1๋ฒ ๋
ธ๋์ ์ฐ๊ฒฐ๋ 2๋ฒ, 3๋ฒ, 4๋ฒ๋
ธ๋์ ์ต๋จ ๊ฑฐ๋ฆฌ๋ฅผ ์ฒ๋ฆฌํด์ค๋ค.
2๋ฒ๋
ธ๋๊ฐ 1๋ฒ๋
ธ๋๋ฅผ ๊ฑฐ์ณ๊ฐ๋ฉด 0+2์ ๋น์ฉ์ด ๋ค๊ณ , 1๋ฒ๋
ธ๋๋ฅผ ๊ฑฐ์น์ง ์๋๋ค๋ฉด ํ์ฌ ๊ฐ์ธ ๋ฌดํ์ด ๋๋ค. ์ต๋จ ๊ฑฐ๋ฆฌ ํ
์ด๋ธ์ ๋ ์์ ๊ฐ์ธ 2๋ก ๊ฐฑ์ ๋๋ค.3๋ฒ๋
ธ๋๊ฐ 1๋ฒ๋
ธ๋๋ฅผ ๊ฑฐ์ณ๊ฐ๋ฉด 0+5์ ๋น์ฉ์ด ๋ค๊ณ , 1๋ฒ๋
ธ๋๋ฅผ ๊ฑฐ์น์ง ์๋๋ค๋ฉด ํ์ฌ ๊ฐ์ธ ๋ฌดํ์ด ๋๋ค. ์ต๋จ ๊ฑฐ๋ฆฌ ํ
์ด๋ธ์ ๋ ์์ ๊ฐ์ธ 5๋ก ๊ฐฑ์ ๋๋ค.4๋ฒ๋
ธ๋๊ฐ 1๋ฒ๋
ธ๋๋ฅผ ๊ฑฐ์ณ๊ฐ๋ฉด 0+1์ ๋น์ฉ์ด ๋ค๊ณ , 1๋ฒ๋
ธ๋๋ฅผ ๊ฑฐ์น์ง ์๋๋ค๋ฉด ํ์ฌ ๊ฐ์ธ ๋ฌดํ์ด ๋๋ค. ์ต๋จ ๊ฑฐ๋ฆฌ ํ
์ด๋ธ์ ๋ ์์ ๊ฐ์ธ 1๋ก ๊ฐฑ์ ๋๋ค.
๋ค์๋ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ฐฉ๋ฌธํ์ง ์์ ๋
ธ๋ ์ค์์ ์ต๋จ๊ฑฐ๋ฆฌ๊ฐ ๊ฐ์ฅ ์งง์ ๋
ธ๋๋ฅผ ์ ํํด์ผ ํ๋ค.
๋ฐฉ๋ฌธํ 1๋ฒ ๋
ธ๋๋ฅผ ์ ์ธํ ๋
ธ๋ ์ค ์ต๋จ๊ฑฐ๋ฆฌ๊ฐ ๊ฐ์ฅ ์งง์ ๋
ธ๋์ธ 4๋ฒ ๋
ธ๋๋ฅผ ์ ํํ๋ค.
๊ทธ ํ 4๋ฒ ๋
ธ๋์ ์ฐ๊ฒฐ๋ 3๋ฒ, 5๋ฒ๋
ธ๋์ ์ต๋จ ๊ฑฐ๋ฆฌ๋ฅผ ์ฒ๋ฆฌํด์ค๋ค.
3๋ฒ๋
ธ๋๊ฐ 4๋ฒ๋
ธ๋๋ฅผ ๊ฑฐ์ณ๊ฐ๋ฉด 1+3์ ๋น์ฉ์ด ๋ค๊ณ , 4๋ฒ๋
ธ๋๋ฅผ ๊ฑฐ์น์ง ์๋๋ค๋ฉด ํ์ฌ ๊ฐ์ธ 5๊ฐ ๋๋ค. ์ต๋จ ๊ฑฐ๋ฆฌ ํ
์ด๋ธ์ ๋ ์์ ๊ฐ์ธ 4๋ก ๊ฐฑ์ ๋๋ค.5๋ฒ๋
ธ๋๊ฐ 4๋ฒ๋
ธ๋๋ฅผ ๊ฑฐ์ณ๊ฐ๋ฉด 1+1์ ๋น์ฉ์ด ๋ค๊ณ , 4๋ฒ๋
ธ๋๋ฅผ ๊ฑฐ์น์ง ์๋๋ค๋ฉด ํ์ฌ ๊ฐ์ธ ๋ฌดํ์ด ๋๋ค. ์ต๋จ ๊ฑฐ๋ฆฌ ํ
์ด๋ธ์ ๋ ์์ ๊ฐ์ธ 2๋ก ๊ฐฑ์ ๋๋ค.
๋ค์๋ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ฐฉ๋ฌธํ์ง ์์ ๋
ธ๋ ์ค์์ ์ต๋จ๊ฑฐ๋ฆฌ๊ฐ ๊ฐ์ฅ ์งง์ ๋
ธ๋๋ฅผ ์ ํํด์ผ ํ๋ค.
๋ฐฉ๋ฌธํ 1๋ฒ, 4๋ฒ ๋
ธ๋๋ฅผ ์ ์ธํ ๋
ธ๋ ์ค ์ต๋จ๊ฑฐ๋ฆฌ๊ฐ ๊ฐ์ฅ ์งง์ ๋
ธ๋๋ 2๋ฒ๋
ธ๋์ 5๋ฒ๋
ธ๋๊ฐ ์๋ค.
๋ ์ค ์๋ฌด๊ฑฐ๋ ๋จผ์ ์ฒ๋ฆฌํด๋ ์๊ด ์์ง๋ง ๋ณดํต ๋
ธ๋ ๋ฒํธ๊ฐ ์์ ๋
ธ๋๋ฅผ ํํ๋ค.
๋ฐ๋ผ์ 2๋ฒ ๋
ธ๋๋ฅผ ์ ํํ๊ณ , 2๋ฒ๋
ธ๋์ ์ฐ๊ฒฐ๋ 3๋ฒ, 4๋ฒ๋
ธ๋๋ฅผ ์ฒ๋ฆฌํด์ค๋ค.
3๋ฒ๋
ธ๋๊ฐ 2๋ฒ๋
ธ๋๋ฅผ ๊ฑฐ์ณ๊ฐ๋ฉด 2+3์ ๋น์ฉ์ด ๋ค๊ณ , 2๋ฒ๋
ธ๋๋ฅผ ๊ฑฐ์น์ง ์๋๋ค๋ฉด ํ์ฌ ๊ฐ์ธ 4๊ฐ ๋๋ค. ์ต๋จ ๊ฑฐ๋ฆฌ ํ
์ด๋ธ์ ๋ ์์ ๊ฐ์ธ 4๋ก ๊ฐฑ์ ๋๋ค. (์ฌ์ค์ ์ ์ง)4๋ฒ๋
ธ๋๊ฐ 2๋ฒ๋
ธ๋๋ฅผ ๊ฑฐ์ณ๊ฐ๋ฉด 2+2์ ๋น์ฉ์ด ๋ค๊ณ , 2๋ฒ๋
ธ๋๋ฅผ ๊ฑฐ์น์ง ์๋๋ค๋ฉด ํ์ฌ ๊ฐ์ธ 1์ด ๋๋ค. ์ต๋จ ๊ฑฐ๋ฆฌ ํ
์ด๋ธ์ ๋ ์์ ๊ฐ์ธ 1๋ก ๊ฐฑ์ ๋๋ค. (์ฌ์ค์ ์ ์ง)
๋ค์๋ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ฐฉ๋ฌธํ์ง ์์ ๋
ธ๋ ์ค์์ ์ต๋จ๊ฑฐ๋ฆฌ๊ฐ ๊ฐ์ฅ ์งง์ ๋
ธ๋๋ฅผ ์ ํํด์ผ ํ๋ค.
๋ฐฉ๋ฌธํ 1๋ฒ, 4๋ฒ, 2๋ฒ ๋
ธ๋๋ฅผ ์ ์ธํ ๋
ธ๋ ์ค ์ต๋จ๊ฑฐ๋ฆฌ๊ฐ ๊ฐ์ฅ ์งง์ ๋
ธ๋์ธ 5๋ฒ๋
ธ๋๋ฅผ ์ ํํ๋ค.
๊ทธ ํ 5๋ฒ ๋
ธ๋์ ์ฐ๊ฒฐ๋ 3๋ฒ, 6๋ฒ๋
ธ๋์ ์ต๋จ ๊ฑฐ๋ฆฌ๋ฅผ ์ฒ๋ฆฌํด์ค๋ค.
3๋ฒ๋
ธ๋๊ฐ 5๋ฒ๋
ธ๋๋ฅผ ๊ฑฐ์ณ๊ฐ๋ฉด 2+1์ ๋น์ฉ์ด ๋ค๊ณ , 5๋ฒ๋
ธ๋๋ฅผ ๊ฑฐ์น์ง ์๋๋ค๋ฉด ํ์ฌ ๊ฐ์ธ 4๊ฐ ๋๋ค. ์ต๋จ ๊ฑฐ๋ฆฌ ํ
์ด๋ธ์ ๋ ์์ ๊ฐ์ธ 3์ผ๋ก ๊ฐฑ์ ๋๋ค.6๋ฒ๋
ธ๋๊ฐ 5๋ฒ๋
ธ๋๋ฅผ ๊ฑฐ์ณ๊ฐ๋ฉด 2+2์ ๋น์ฉ์ด ๋ค๊ณ , 5๋ฒ๋
ธ๋๋ฅผ ๊ฑฐ์น์ง ์๋๋ค๋ฉด ํ์ฌ ๊ฐ์ธ ๋ฌดํ์ด ๋๋ค. ์ต๋จ ๊ฑฐ๋ฆฌ ํ
์ด๋ธ์ ๋ ์์ ๊ฐ์ธ 4๋ก ๊ฐฑ์ ๋๋ค.
๋ค์๋ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ฐฉ๋ฌธํ์ง ์์ ๋
ธ๋ ์ค์์ ์ต๋จ๊ฑฐ๋ฆฌ๊ฐ ๊ฐ์ฅ ์งง์ ๋
ธ๋๋ฅผ ์ ํํด์ผ ํ๋ค.
๋ฐฉ๋ฌธํ 1๋ฒ, 4๋ฒ, 2๋ฒ, 5๋ฒ ๋
ธ๋๋ฅผ ์ ์ธํ ๋
ธ๋ ์ค ์ต๋จ๊ฑฐ๋ฆฌ๊ฐ ๊ฐ์ฅ ์งง์ ๋
ธ๋์ธ 3๋ฒ๋
ธ๋๋ฅผ ์ ํํ๋ค.
๊ทธ ํ 3๋ฒ ๋
ธ๋์ ์ฐ๊ฒฐ๋ 2๋ฒ, 6๋ฒ๋
ธ๋์ ์ต๋จ ๊ฑฐ๋ฆฌ๋ฅผ ์ฒ๋ฆฌํด์ค๋ค.
2๋ฒ๋
ธ๋๊ฐ 3๋ฒ๋
ธ๋๋ฅผ ๊ฑฐ์ณ๊ฐ๋ฉด 3+3์ ๋น์ฉ์ด ๋ค๊ณ , 3๋ฒ๋
ธ๋๋ฅผ ๊ฑฐ์น์ง ์๋๋ค๋ฉด ํ์ฌ ๊ฐ์ธ 2๊ฐ ๋๋ค. ์ต๋จ ๊ฑฐ๋ฆฌ ํ
์ด๋ธ์ ๋ ์์ ๊ฐ์ธ 2๋ก ๊ฐฑ์ ๋๋ค. (์ฌ์ค์ ์ ์ง)6๋ฒ๋
ธ๋๊ฐ 3๋ฒ๋
ธ๋๋ฅผ ๊ฑฐ์ณ๊ฐ๋ฉด 3+5์ ๋น์ฉ์ด ๋ค๊ณ , 3๋ฒ๋
ธ๋๋ฅผ ๊ฑฐ์น์ง ์๋๋ค๋ฉด ํ์ฌ ๊ฐ์ธ 6์ด ๋๋ค. ์ต๋จ ๊ฑฐ๋ฆฌ ํ
์ด๋ธ์ ๋ ์์ ๊ฐ์ธ 6์ผ๋ก ๊ฐฑ์ ๋๋ค. (์ฌ์ค์ ์ ์ง)
๋ง์ง๋ง์ผ๋ก ๋ฐฉ๋ฌธํ์ง ์์ ๋
ธ๋์ธ 6๋ฒ ๋
ธ๋๋ฅผ ์ ํํ๋ค.
6๋ฒ ๋
ธ๋๋ฅผ ํตํด ๊ฐ ์ ์๋ ๋
ธ๋๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋ฐ๋ณต์ ์ข
๋ฃ๋๋ค.
์ด๋ ๊ฒ ํน์ ๋
ธ๋์ธ 1๋ฒ๋
ธ๋์์ ๋ชจ๋ ๋
ธ๋๋ก ๊ฐ๋ ์ต๋จ๊ฑฐ๋ฆฌ๋ฅผ ๊ฐฑ์ ํ ์ ์๋ค.
์ฌ์ค์ ๋ชจ๋ ๊ฒฝ๋ก๋ฅผ ํ์ํ๊ณ ํ์ฌ ๊ธฐ์ค ๊ฐ์ฅ ์ต์ ๋น์ฉ์ ์๋ชจํ๋ ๋
ธ๋๋ฅผ ์ ํํ๊ธฐ ๋๋ฌธ์ ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ํฌํจ๋๊ธฐ๋ ํ๊ณ , ์ต๋จ๊ฑฐ๋ฆฌ ๋ฐฐ์ด์ ๊ฐฑ์ ํด ๋๊ฐ๋ ๊ณผ์ ์์ DP ์๊ณ ๋ฆฌ์ฆ์ ํฌํจ๋๊ธฐ๋ ํ๋ค.
// ๋
ธ๋์ ๊ฐ์, ๊ทธ๋ํ, ์ ์ /๊ฐ์ /๊ฐ์ค์น ์ ๋ณด
const n = 6;
const graph = Array.from({ length: n + 1 }, () => []);
const inputs = ['1 2 2', '1 3 5', '1 4 1', '2 3 3', '2 4 2', '3 2 3', '3 6 5', '4 3 3', '4 5 1', '5 3 1', '5 6 2']
// ์ ์ /๊ฐ์ /๊ฐ์ค์น ์ ๋ณด๋ฅผ ์ซ์๊ฐ์ผ๋ก ํ์ฑํ์ฌ ๊ทธ๋ํ์ ์ ์ฅํด์ค๋ค.
for (const input of inputs) {
const [s, e, c] = input.split(' ').map(Number);
graph[s].push([e, c]);
}
// ์ต๋จ๊ฑฐ๋ฆฌ ํ
์ด๋ธ์ค ์ต๋จ๊ฑฐ๋ฆฌ๋ฅผ ๊ฐ์ง ๋
ธ๋๋ฒํธ๋ฅผ ๋ฆฌํดํ๋ ํจ์
const getMinNode = (distances, visited) => {
let minDistance = Infinity;
let minNode = -1;
for (let i = 1; i <= n; i++) {
if (!visited[i] && distances[i] < minDistance) {
minDistance = distances[i];
minNode = i;
}
}
return minNode;
};
// ๋ค์ต์ค๋๋ผ ํจ์ ๊ตฌํ
const dijkstra = (startNode) => {
// ์ต๋จ๊ฑฐ๋ฆฌ๋ฅผ ๊ธฐ๋กํ distance ๋ฐฐ์ด, ๋ฐฉ๋ฌธ ์ฌ๋ถ๋ฅผ ๊ธฐ๋กํ visited๋ฐฐ์ด
const distances = Array(n + 1).fill(Infinity);
const visited = Array(n + 1).fill(false);
// ์์๋
ธ๋์ ์ต๋จ ๊ฑฐ๋ฆฌ๋ 0
distances[startNode] = 0;
// ๋ชจ๋ ๋
ธ๋๋ฅผ ํ์ํ๋ฉฐ ์ต๋จ๊ฑฐ๋ฆฌ ํ
์ด๋ธ์ ๊ฐฑ์ ํ๋ค.
// ๋ฌดํ๋ฐ๋ณต์ด ์๋ for๋ฌธ์ ์ฌ์ฉํด๋ ๋๋ค ํ ๋ฒ ๋ฐฉ๋ฌธํ ๋
ธ๋๋ ๋ค์ ๋ฐฉ๋ฌธํ์ง ์์ผ๋๊น
while (true) {
const node = getMinNode(distances, visited);
// -1์ ๋ฆฌํด๋ฐ์๋ค๋ ๊ฒ์ ๋ฐฉ๋ฌธ์ํ ๋
ธ๋์ค์ ์ต๋จ๋
ธ๋๊ฐ ๋ฐ๊ฒฌ๋์ง ์์๋ค๋ ๊ฒ
// ์ฆ ๋ชจ๋ ๋
ธ๋๋ฅผ ๋ฐฉ๋ฌธํ ๊ฒฝ์ฐ ์ข
๋ฃํ๋ค.
if (node === -1) break;
visited[node] = true;
// ์ต๋จ๊ฒฝ๋ก ๊ฐฑ์
for (const [v, w] of graph[node]) {
if (distances[node] + w < distances[v]) {
distances[v] = distances[node] + w;
}
}
}
return distances;
};
// 1๋ฒ ๋
ธ๋๋ถํฐ ๋ค๋ฅธ ๋ชจ๋ ๋
ธ๋๊น์ง์ ์ต๋จ๊ฑฐ๋ฆฌ ํ
์ด๋ธ์ ๋ฆฌํดํ๋ค.
dijkstra(1);
๊ทธ๋ฆผ์ผ๋ก ์ค๋ช
๋ ๋ด์ฉ์ ์ฝ๋๋ก ๊ตฌํํด๋ดค๋ค.
ํ์ฌ ์ฝ๋์์๋ ์ต๋จ ๊ฑฐ๋ฆฌ ํ
์ด๋ธ์์ ๋ค์ ํ์ ๋
ธ๋๋ฅผ ์ ํํ ๋, ์๋์ ๊ฐ์ด getMinNode์ ๊ฐ์ ํจ์๋ฅผ ์ฌ์ฉํด ๋งค๋ฒ ๋ชจ๋ ๋
ธ๋๋ฅผ ํ์ํ๋ค.
const getMinNode = (distances, visited) => {
let minDistance = Infinity;
let minNode = -1;
for (let i = 1; i <= n; i++) {
if (!visited[i] && distances[i] < minDistance) {
minDistance = distances[i];
minNode = i;
}
}
return minNode;
};
๋ํ ๋ฐฉ๋ฌธ ์ฌ๋ถ๋ฅผ ์ถ์ ํ๊ธฐ ์ํด visited ๋ฐฐ์ด์ด ํ์ํ๋ค.
์ด ๋ฐฉ์์ ์ถ๊ฐ์ ์ธ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ์ํ๊ณ , ์ต๋จ ๊ฑฐ๋ฆฌ ๋
ธ๋๋ฅผ ์ ํํ๋ ํจ์ ๋ด๋ถ์์ n๋ฒ์ ๋ฐ๋ณต, ๋ชจ๋ ๋
ธ๋์์ ํ
์ด๋ธ์ ๊ฐฑ์ ํ๋๋ฐ n๋ฒ์ ๋ฐ๋ณต์ ํ๊ธฐ ๋๋ฌธ์ O(n^2)์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง๊ฒ ๋๋ค.
์ฐ์ ์์ํ(ํ)์ ์ฌ์ฉํด ๊ตฌํํ๋ฉด ์ ๊ณผ์ ์ O(nlogn) ์ ์๊ฐ๋ณต์ก๋๋ก ์ต์ ํ ํ ์ ์๋ค.
๋ค๋ง ์๋ฐ์คํฌ๋ฆฝํธ๋ ์ฐ์ ์์ ํ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ง์ํ์ง ์์ ์ง์ ๊ตฌํํด์ผ ํ๋ค.
๊ฐ๋ ์ฝ๋ฉํ
์คํธ ์ ํ์ธ์ด๋ก JavaScript๋ง ๋๋ ๊ฒฝ์ฐ๊ฐ ์๋๋ฐ ์ด ๋๋ ์ฐ์ ์์ ํ๋ฅผ ์ฌ์ฉํ๋ ๋ฌธ์ ๊ฐ ๋์ค์ง ์์ ๊ฒ์ด๋ผ ์๊ฐํ๋ค. ๋ฐ๋ผ์ ์ด ํฌ์คํธ์์ ๋ค๋ฃจ์ง ์๋๋ค.
์ด์ ๋ณ๊ฐ๋ก ์ฐ์ ์์ ํ๋ฅผ ์ง์ ๊ตฌํํด๋ณด๋ ๊ฒ์ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ดํดํ๋ ๋ฐ ํฐ ๋์์ด ๋๊ธฐ ๋๋ฌธ์ ์ถํ ๋ณ๋๋ก ํฌ์คํ ์ ํ ์์ ์ด๋ค!