Read-and-analysis.md
๐ ์ฝ๊ธฐ์ ๋ถ์
์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํด๊ฒฐ์ ๊ฐ์ฅ ์ค์ํ ๊ฒ
๋ฌธ์ ์ ์กฐ๊ฑด๋ค์ ์ถ์ํํ๋ ์ฐ์ต
์๊ฐ๋ณต์ก๋/๊ณต๊ฐ๋ณต์ก๋ ์ด๋ฆผ์ก๊ธฐ
์๊ฐ๋ณต์ก๋
์ด๋ค ์ด์ ๋ก ์ฝ๋์ ์คํ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆด๊น? => ์ฐ์ฐ๋
์ฐ์ฐ๋์ ์ด๋ค ๊ฐ๊ณผ ์๊ด์ด ์์๊น? => ์ ๋ ฅ
๋ชจ๋ ์ฐ์ฐ์ Counting ํ ์ ์์๊น? => X
์ต์ ์ ๊ฒฝ์ฐ์ ์ต์ ์ ๊ฒฝ์ฐ? => X
Counting์ ๋ฐ๋ผ ์คํ์๊ฐ์? => X => ๋ค์ํ ์ด์ (ํ๋์จ์ด ์ฐจ์ด, ์ฐ์ฐ ์ฒ๋ฆฌ์๋ ๋ฑ๋ฑ)๋ก ์ ํํ ์คํ์๊ฐ์ด๋ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ตฌํ๊ธฐ๋ ํ๋ค๋ค
๊ทธ๋์!
๐ ๋์ถฉ ๊ณ์ฐํ์ => ์ ๊ทผ์ ํ๊ธฐ๋ฒ
ํํ๋ฒ : Big-O Notation
์ ๋ ฅ์ด N์ผ๋, ์ฐ์ฐ ํ์๊ฐ ์ต์ ์ด 2N^2 + 4N์ด๋ผ๋ฉด?
O(N^2) N์ด ๋ฌดํ๋๋ก ์ปค์ง ๋, ๊ฐ์ฅ ๋ง์ ์ํฅ์ ์ฃผ๋ ํญ์ ์ต๊ณ ์ฐจํญ์ด๋ค!
๋ฌธ์ ํธ๋ ์์
๋ฌธ์ ํ์ด ํ ๋๋ ๐ฟ์ต์
์ ๊ฒฝ์ฐ๐ฟ๋ฅผ ์๊ฐํ์!
์๊ฐ, ๋ฉ๋ชจ๋ฆฌ, ์ ๋ ฅ, ์ถ๋ ฅ ๋ณด๊ณ ํ์ด ๊ฐ ์ก๊ธฐ
์๊ฐ๊ณผ ๊ณต๊ฐ ์ฐจ์์์ ๊ฐ๊ฐ ๋ค๋ฅผ ์ ์์ => ์๊ฐ ๋ณต์ก๋์ ๊ณต๊ฐ๋ณต์ก๋
๊ณ์ + ์์คํ ์ ๋ํ ๊ฐ(์ผ์ค)์ด ์ค์
Naive(๋ฌด์์ )ํ ํ์ด ๋ ์ฌ๋ฆฌ๊ธฐ
์ค๊ฐ ๊ณผ์ ์ ๋ฐ๋์ ํ์ํ ๋ก์ง ์๊ฐํ๊ธฐ
์์ ์ ๋ ฅ๊ณผ ์์ ์ถ๋ ฅ ๋งค์นญ
์ฝ๋ ์์ฑ
์
๋ ฅ๊ณผ ์ด๊ธฐํ ํ - Map๊ณผ Comprehension
์ ๋ ฅ์ ๋ํ์ ์ธ ์ฌ๋ก 3๊ฐ์ง
์
๋ฌธ์์ด(๋ฌธ์ ๋ฐฐ์ด)
๋ฐฐ์ด
Map(x, y)
xํจ์๋ฅผ y์ ์์์ ๋ชจ๋ ์ ์ฉํ map ๊ฐ์ฒด๋ฅผ ๋ฐํ
# ๋ฌธ์๋ก ์
๋ ฅ๋ 4๊ฐ์ ์ซ์๋ฅผ intํ์ผ๋ก ๋ง๋ค์ด ์ถ๋ ฅ
num = [input() for i in range(4)]
print(map(int, num))
List Comprehension
List ์ด๊ธฐํ๋ comprehension์ผ๋ก!
n_list = [0 for _ in range(n)]
์๋ฌ ๋ฉ์์ง - Accepted์ Wrong Answer

์ถ์ํ๊ฐ ๊ธฐ๋ฅ๋ถ๋ฆฌ - ํจ์์ ํ์ฉ
TestCase๊ฐ ๋ง์ ๋ฌธ์
๊ธฐ๋ฅ์ด ๋ถ๋ฆฌ๋๋ ๋ฌธ์
=> ์ ์ ํ๊ฒ ํจ์๋ก ๋ถํ ํ์ฌ ๊ฐ๋ ์ฑ์ ๋์ด๊ณ mainํจ์๋ฅผ ๊ฐ๋ณ๊ฒ ํ์!
=> psedo-code ์์ฑํ๋ฏ์ด ๊ฐ๋ตํ๊ฒ
๊ฐ๋
์ฑ - ์กฐ๊ฑด๋ฌธ, ๋ฐ๋ณต๋ฌธ, ํจ์ ๋ชจ๋ ์ค์ผ ๋ถ๋ถ ์กด์ฌ
for i in range(N):
for j in range(N):
for k in range(N):
#์์ ๋์ผํ ์ฝ๋
for num in range(N**3):
i, j, k = num // (N*N), num // N % N, num %N
=> ๋ค์ค๋ฐ๋ณต๋ฌธ ์ฌ์ฉ์ ์ํ์ ์ธ ๋ฐฉ๋ฒ(๋ชซ๊ณผ ๋๋จธ์ง, ์ง๋ฒ ๋ฑ)์ ์ด์ฉํ์ฌ ๊ฐ๋ณ๊ฒ ๋ณ๊ฒฝ!
for i in range(N):
if state:
process()
#์์ ๋ค๋ฅด๊ฒ
for i in range(N):
if not state: continue
process()
=> ์กฐ๊ฑด์ ๋ง์ง ์๋ ๊ฒฝ์ฐ๋ฅผ continue๋ฅผ ํตํด ๋ฐฐ์ , ๋ฐ๋ณต๋ฌธ ๋ด๋ถ์ indent๋ฅผ ์ค์ผ ์ ์์
#์ผ๋ฐ์ ์ธ if else ์กฐ๊ฑด๋ฌธ ์ฌ์ฉ
if x:
return True
else:
return False
#์๋์ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก
if x: return True
return False
# if else 3ํญ ์ฐ์ฐ์์ ํ์ฉ
return True if x else False
๋ช
๋ช
๋ฒ - Snake, Camel, Pascal
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๋ ๋๊ฐ์ ๋ฐ์ค๋ก ์์
Last updated