Read-and-analysis.md
Last updated
Last updated
์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํด๊ฒฐ์ ๊ฐ์ฅ ์ค์ํ ๊ฒ
๋ฌธ์ ์ ์กฐ๊ฑด๋ค์ ์ถ์ํํ๋ ์ฐ์ต
์๊ฐ๋ณต์ก๋/๊ณต๊ฐ๋ณต์ก๋ ์ด๋ฆผ์ก๊ธฐ
์ด๋ค ์ด์ ๋ก ์ฝ๋์ ์คํ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆด๊น? => ์ฐ์ฐ๋
์ฐ์ฐ๋์ ์ด๋ค ๊ฐ๊ณผ ์๊ด์ด ์์๊น? => ์ ๋ ฅ
๋ชจ๋ ์ฐ์ฐ์ Counting ํ ์ ์์๊น? => X
์ต์ ์ ๊ฒฝ์ฐ์ ์ต์ ์ ๊ฒฝ์ฐ? => X
Counting์ ๋ฐ๋ผ ์คํ์๊ฐ์? => X => ๋ค์ํ ์ด์ (ํ๋์จ์ด ์ฐจ์ด, ์ฐ์ฐ ์ฒ๋ฆฌ์๋ ๋ฑ๋ฑ)๋ก ์ ํํ ์คํ์๊ฐ์ด๋ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ตฌํ๊ธฐ๋ ํ๋ค๋ค
๊ทธ๋์!
ํํ๋ฒ : Big-O Notation
์ ๋ ฅ์ด N์ผ๋, ์ฐ์ฐ ํ์๊ฐ ์ต์ ์ด 2N^2 + 4N์ด๋ผ๋ฉด?
O(N^2) N์ด ๋ฌดํ๋๋ก ์ปค์ง ๋, ๊ฐ์ฅ ๋ง์ ์ํฅ์ ์ฃผ๋ ํญ์ ์ต๊ณ ์ฐจํญ์ด๋ค!
์๊ฐ, ๋ฉ๋ชจ๋ฆฌ, ์ ๋ ฅ, ์ถ๋ ฅ ๋ณด๊ณ ํ์ด ๊ฐ ์ก๊ธฐ
์๊ฐ๊ณผ ๊ณต๊ฐ ์ฐจ์์์ ๊ฐ๊ฐ ๋ค๋ฅผ ์ ์์ => ์๊ฐ ๋ณต์ก๋์ ๊ณต๊ฐ๋ณต์ก๋
Naive(๋ฌด์์ )ํ ํ์ด ๋ ์ฌ๋ฆฌ๊ธฐ
์ค๊ฐ ๊ณผ์ ์ ๋ฐ๋์ ํ์ํ ๋ก์ง ์๊ฐํ๊ธฐ
์์ ์ ๋ ฅ๊ณผ ์์ ์ถ๋ ฅ ๋งค์นญ
์ฝ๋ ์์ฑ
์ ๋ ฅ์ ๋ํ์ ์ธ ์ฌ๋ก 3๊ฐ์ง
์
๋ฌธ์์ด(๋ฌธ์ ๋ฐฐ์ด)
๋ฐฐ์ด
Map(x, y)
xํจ์๋ฅผ y์ ์์์ ๋ชจ๋ ์ ์ฉํ map ๊ฐ์ฒด๋ฅผ ๋ฐํ
List Comprehension
List ์ด๊ธฐํ๋ comprehension์ผ๋ก!
TestCase๊ฐ ๋ง์ ๋ฌธ์
๊ธฐ๋ฅ์ด ๋ถ๋ฆฌ๋๋ ๋ฌธ์
=> ์ ์ ํ๊ฒ ํจ์๋ก ๋ถํ ํ์ฌ ๊ฐ๋ ์ฑ์ ๋์ด๊ณ mainํจ์๋ฅผ ๊ฐ๋ณ๊ฒ ํ์!
=> psedo-code ์์ฑํ๋ฏ์ด ๊ฐ๋ตํ๊ฒ
=> ๋ค์ค๋ฐ๋ณต๋ฌธ ์ฌ์ฉ์ ์ํ์ ์ธ ๋ฐฉ๋ฒ(๋ชซ๊ณผ ๋๋จธ์ง, ์ง๋ฒ ๋ฑ)์ ์ด์ฉํ์ฌ ๊ฐ๋ณ๊ฒ ๋ณ๊ฒฝ!
=> ์กฐ๊ฑด์ ๋ง์ง ์๋ ๊ฒฝ์ฐ๋ฅผ continue๋ฅผ ํตํด ๋ฐฐ์ , ๋ฐ๋ณต๋ฌธ ๋ด๋ถ์ indent๋ฅผ ์ค์ผ ์ ์์
Camel ํ๊ธฐ๋ฒ
๊ฐ ๋จ์ด์ ์ฒซ ๊ธ์๋ฅผ ๋๋ฌธ์๋ก ์ ๋ ๋ฐฉ๋ฒ
๋จ, ๊ฐ์ฅ ์ฒซ ๊ธ์๋ ์๋ฌธ์๋ฅผ ์ฌ์ฉํ๋ค.
ex) camelCase, firstNum, thisIsCamelCase, howToSolveThisProblem
Snake ํ๊ธฐ๋ฒ
์๋ฌธ์๋ง ์ฌ์ฉํ๊ณ ๊ฐ ๋จ์ด์ ์ฌ์ด์ ์ธ๋๋ฐ(_)๋ฅผ ๋ฃ์ด์ ์ ๋ ๋ฐฉ๋ฒ
ex) snake_case, variable_n, this_is_snake_case, how_to_solve_this_problem
Pascal ํ๊ธฐ๋ฒ
Camel ํ๊ธฐ๋ฒ๊ณผ ๊ฐ์ง๋ง, ๊ฐ์ฅ ์ฒซ ๊ธ์๋ ๋๋ฌธ์๋ฅผ ์ฌ์ฉํ๋ค.
ex) PascalCase, VariableN, ThisIsPascalCase, HowToSolveThisProblem
PEP8 ๋ช ๋ช ๊ท์น
ํจ์, ๋ณ์, Attribute๋ Snakeํ๊ธฐ๋ฒ ์ฌ์ฉ
ํด๋์ค๋ Pascal ํ๊ธฐ๋ฒ ์ฌ์ฉ
๋ชจ๋ ์์๋ ๋ชจ๋ ๋๋ฌธ์๋ฅผ ์ฌ์ฉํ๊ณ ๋จ์ด๋ง๋ค ๋ฐ์ค๋ก ์ฐ๊ฒฐํ๋ ALL_CAP ํฌ๋งท ์ฌ์ฉ ex) MAX_COUNT = 100
ํด๋์ค์ protected instanced attribute๋ ํ๋์ ๋ฐ์ค๋ก ์์
ํด๋์ค์ privated instanced attirbute๋ ๋๊ฐ์ ๋ฐ์ค๋ก ์์
๊ณ์ + ์์คํ ์ ๋ํ ๊ฐ(์ผ์ค)์ด ์ค์