coding test
์ ํด์ง ์๊ฐ ๋ด์ ์ ์ ํ ์๊ณ ๋ฆฌ์ฆ์ ํ์ฉํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ ๋ฅ๋ ฅ์ ํ๊ฐํ๋ ๊ฒ
์๊ณ ๋ฆฌ์ฆ์ ์ฑ๋ฅ์ ํ๊ฐํ๋ ์ฒ๋
๊ณต๊ฐ์ ๋ง์ด ์ฌ์ฉํ๋ ๋์ ์๊ฐ์ ๋จ์ถํ๋ ๋ฐฉ๋ฒ์ด ํํ ์ฌ์ฉ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ์ฐ์ฐ ํ์๊ฐ 10์ต์ ๋์ด๊ฐ๋ฉด 1์ด ์ด์์ ์๊ฐ ์ง์ฐ ๋ฐ์ํ๋ค๊ณ ๋ณธ๋ค.
ํ์ค ์ธ๊ณ์์ ๋์ ์๊ฐ์ด 1์ด ์ด๋ด์ธ ์๊ณ ๋ฆฌ์ฆ์ ์ค๊ณํ ํ์๊ฐ ์๋ค.
์๊ฐ ๋ณต์ก๋(Time Complexity)
ํน์ ์ ๋ ฅ๊ฐ์ ๋ฐ๋ผ ์๊ณ ๋ฆฌ์ฆ์ ์ํ ์๊ฐ์ ํ๊ฐ
์ํ ์๊ฐ์ ์คํํ๊ฒฝ์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ์ธก์ ๋๊ธฐ ๋๋ฌธ์ ๊ธฐ๋ณธ ์ฐ์ฐ์ ์คํ ํ์๋ก ์ํ ์๊ฐ์ ํ๊ฐํ๋ค.
๊ธฐ๋ณธ ์ฐ์ฐ์ด๋?
๋ฐ์ดํฐ ์ ์ถ๋ ฅ
์ ์ด ์ฐ์ฐ
์ฐ์ ์ฐ์ฐ
์๊ฐ ๋ณต์ก๋๋ ์๊ณ ๋ฆฌ์ฆ์ด ๋ณต์กํด์ง์๋ก ํ๊ท ์ ์ธ ๊ฒฝ์ฐ๋ฅผ ๊ตฌํ๊ธฐ ์ด๋ ต๊ธฐ ๋๋ฌธ์ ์ต์ ์ ๊ฒฝ์ฐ๋ก ์ฑ๋ฅ์ ํ์ ํ๋ค.
๊ณต๊ฐ ๋ณต์ก๋(Spade Complexity)
ํน์ ์ ๋ ฅ๊ฐ์ ๋ฐ๋ผ ์๊ณ ๋ฆฌ์ฆ์ด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ผ๋ง๋ ์ฐจ์งํ๋์ง๋ฅผ ํ๊ฐ
์ ๋ ฅ ๊ณต๊ฐ + ์๊ณ ๋ฆฌ์ฆ ์์ฒด๊ฐ ํ์๋ก ํ๋ ๊ณต๊ฐ์ ์๋ฏธํ๋ค.
๊ณต๊ฐ ๋ณต์ก๋ ๊ท์น
string์ ์ ์ธํ ์์๊ฐ์ O(1)
string, ์ฐธ์กฐ๊ฐ(array, object)๋ O(n)
๋ฌธ์์ด ๊ธธ์ด๊ฐ 50์ด๋ผ๋ฉด ๊ธธ์ด๊ฐ 1์ธ ๋ฌธ์์ด ๋ณด๋ค 50๋ฐฐ ๋ง์ ๊ณต๊ฐ์ ์ฐจ์งํ๋ค
Big O ํ๊ธฐ๋ฒ
์ฌ๋ฌ ์ฝ๋๋ฅผ ๋น๊ตํ๊ธฐ ์ํด ์๊ณ ๋ฆฌ์ฆ์ ์ฑ๋ฅ์ ํ๊ฐํ์ฌ ์์น๋ก ๋ํ๋ธ ๋ฐฉ๋ฒ
์ ๋ ฅ๊ฐ์ด ์ปค์ง์๋ก ์๊ณ ๋ฆฌ์ฆ์ ์ํ์๊ฐ(์๊ฐ ๋ณต์ก๋)์ด ์ด๋ป๊ฒ ๋ณํ๋์ง ์ค๋ช ํ๋ค.
Big O ๊ณต์
๊ฐ์ฅ ๋น ๋ฅด๊ฒ ์ฆ๊ฐํ๋ ํญ(์ฐจ์๊ฐ ๊ฐ์ฅ ํฐ ํญ)๋ง์ ๊ณ ๋ ค
์ฐจ์๊ฐ ๊ฐ์ฅ ํฐ ํญ์์ ๊ณ์๋ฅผ ์ ์ธํ์ฌ ํ๊ธฐ
๊ฒฐ๊ณผ์ ์ผ๋ก ํํ์์ ๋จ์ํ๊ฒ ๋ํ๋ด์ง๋ค.
Big O ํ์์ฑ
๊ฐ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋น๊ตํ๊ธฐ ์ํด ํ์ํ๋ค.
์ฌ๋ฌ ์ ๊ทผ๋ฒ์ ์ฅ๋จ์ ์ ์ ๊ธฐํ ๋ ํ์
๋ด๊ฐ ์์ฑํ ์ฝ๋๋ฅผ ๋ ์ ์ดํดํ๊ณ , ๋ ์ข์ ์ฝ๋๋ฅผ ์์ฑํ ๋ ๋์์ด ๋๋ค.
Node.js๋ก ์ฝ๋ฉํ
์คํธ ํ๊ธฐ
๋ฐฑ์ค์ js์ ๋ฌธ์ ๊ฐ node.js์ ์ ์ถ๋ ฅ ํํ๋ก ๋ฌธ์ ๊ฐ ์ ๊ณต๋๋ ์ฐธ๊ณ ํ์.
fs ๋ชจ๋
์ ๋ ฅ ๋ฐ์ดํฐ๊ฐ text ํ์ผ๋ก ์ฃผ์ด์ง๋ ๊ฒฝ์ฐ, ํ์ผ ์์คํ ๋ชจ๋์ ํ์ฉ
์ ์ฒด ํ ์คํธ๋ฅผ ์ฝ์ด์จ๋ค ๊ฐํ์ผ๋ก ๋ถ๋ฆฌํ์ฌ ์ต์ข ์ ์ผ๋ก ๋ฐฐ์ดํํ๋ก ์ ๋ ฅ๊ฐ์ ๋ฐ์์จ๋ค.
readline ๋ชจ๋
ํ ์ค ์ฉ ์ ๋ ฅ์ ๋ฐ์์, ์ฒ๋ฆฌํ๋ ๊ฒฝ์ฐ readline ๋ชจ๋ ํ์ฉ
Last updated