โ ๋ฌธ์ ์ค๋ช
์ด์ค for๋ฌธ(O(n^2))์ ์ฌ์ฉํ๋ ๋ก์ง์ ๋๋ฆฌ๊ณ ๋นํจ์จ์
ํ์ง๋ง ๋ชจ๋ ๊ฒฝ์ฐ๋ฅผ ๋น๊ตํด์ผ ํ๋ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ ๊น?
→ ํฌ ํฌ์ธํฐ(ํฌ-ํฌ์ธํฐ) ๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ฉด ๋๋ถ๋ถ์ ์ด์ค ๋ฐ๋ณต์ O(n) ์์ค์ผ๋ก ์ต์ ํํ ์ ์์
๐ ์ ํ ์กฐ๊ฑด
• ์ ๋ ฌ๋ ๋ฐฐ์ด ํน์ ์์๊ฐ ์ค์ํ ๋ฐ์ดํฐ
• ๋ ์ธ๋ฑ์ค๋ฅผ ์ด๋ํ๋ฉฐ ์ ์ฒด ๋ฒ์๋ฅผ ํ์ธํด์ผ ํ๋ ๊ฒฝ์ฐ
• ๋์ ํฉ, ํฉ ๋น๊ต, ๊ตฌ๊ฐ ํ์ ๋ฌธ์ ๋ฑ
๐ ํ์ด ์ ๋ต
โ๏ธ ๋ ๊ฐ์ ํฌ์ธํฐ๋ฅผ ์ฌ์ฉํด์ ์์น๋ฅผ ๊ธฐ์ตํ๋ฉฐ ์ด๋
โ๏ธ ์กฐ๊ฑด์ ๋ฐ๋ผ ํ๋๋ง ์ด๋ํ๊ฑฐ๋ ๋ ๋ค ์ด๋
โ๏ธ while๋ฌธ, ๋๋ ๋จ์ผ for๋ฌธ์ผ๋ก ๊ตฌํ ๊ฐ๋ฅ
โ๏ธ ํฌ์ธํฐ ๋ณ์๋ช ์์ :
→ start, end ๋๋ left, right
→ s, e / l, r ๋ฑ
โ๏ธ ํ์ดํ๊ฐ ์๋ฐฉํฅ์ผ๋ก ์์ง์ด๋ ๊ทธ๋ฆผ์ด ์๋ค๋ฉด → ํฌ ํฌ์ธํฐ ๊ฐ๋ฅ์ฑ ๋์
โ ์์ฃผ ์ฐ์ด๋ ์ํฉ
1๏ธโฃ ํน์ ํฉ์ ๋ง์กฑํ๋ ๋ ์ ์ฐพ๊ธฐ
2๏ธโฃ ๋ถ๋ถ ๋ฐฐ์ด์ ํฉ์ด ํน์ ๊ฐ ์ด์์ธ ์ต์ ๊ธธ์ด ๊ตฌํ๊ธฐ
3๏ธโฃ ํ๋ฌธ ์ฌ๋ถ ๊ฒ์ฌ (์์ชฝ ๋์์ ์ขํ์ค๋ฉฐ ๋น๊ต)
4๏ธโฃ ์ฌ๋ผ์ด๋ฉ ์๋์ฐ์ ํจ๊ป ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๋ ๋ง์
๐ก ํด์ค
์ด์ค for๋ฌธ์ ์์ ํ์์์๋ ์ ์ฉํ์ง๋ง, ์
๋ ฅ์ด ๋ง์์๋ก ์ฑ๋ฅ ์ ํ๊ฐ ํผ
ํฌ ํฌ์ธํฐ ๊ธฐ๋ฒ์ "๋ชจ๋ ๊ฒฝ์ฐ๋ฅผ ํ์ธํ๋ฉด์๋, ๋ถํ์ํ ๋น๊ต๋ฅผ ํ์ง ์๋๋ก ํฌ์ธํฐ๋ก ์กฐ์ "ํจ
๐ ์ด์ค ๋ฐ๋ณต์ ์ค์ผ ์ ์๋ค๋ ๊ฒ์ด ๊ฐ์ฅ ํฐ ์ฅ์