Skip to content

Instantly share code, notes, and snippets.

View shoark7's full-sized avatar
๐ŸŽฏ
Focusing on being better

Sunghwan Park shoark7

๐ŸŽฏ
Focusing on being better
View GitHub Profile
@shoark7
shoark7 / style-guide-for-python.md
Last active June 14, 2019 04:04
ํŒŒ์ด์ฌ์˜ ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ๋ฅผ ์ตํž ์ˆ˜ ์žˆ๋Š” ๋งํฌ๋ฅผ ์†Œ๊ฐœํ•ด๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

์ผ๋‹จ ์˜ค๋Š˜๋„ ๊ณ ์ƒ ๋งŽ์œผ์…จ์Šต๋‹ˆ๋‹ค. :)

์˜ค๋Š˜ ๋ณด์‹  ์˜์ƒ์€ ๊ฐ€์ƒํ™˜๊ฒฝ ๊ด€๋ จํ•œ ๋‚ด์šฉ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ๋ณธ๊ฒฉ์ ์œผ๋กœ ํŒŒ์ด์ฌ์„ ๊ณต๋ถ€ํ•˜๊ฒŒ ๋˜๋„ค์š”.
๋ณธ๊ฒฉ์ ์ธ ์ฝ”๋”ฉ์— ์•ž์„œ ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ์— ๋Œ€ํ•ด ์ตํžˆ์‹œ๋ฉด ์•ž์œผ๋กœ ํŽธํ•˜์‹ค ๊ฒƒ ๊ฐ™์•„์„œ ์†Œ๊ฐœํ•ด๋“œ๋ฆฌ๋ ค๊ณ  ํ•ด์š”.

ํŒŒ์ด์ฌ์„ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ์€ ์ „์„ธ๊ณ„์ ์œผ๋กœ ๋งŽ๊ณ  ์‚ฌ๋žŒ๋งˆ๋‹ค ๊ฐ์ž์˜ ์ฝ”๋”ฉํ•˜๋Š” ์Šต๊ด€, ์–‘์‹ ๋“ฑ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์„œ๋กœ์˜ ๊ฐœ์„ฑ์€ ์กด์ค‘๋˜์–ด์•ผ๊ฒ ์ง€๋งŒ ์ฝ”๋”ฉํ•˜๋Š” ์Šคํƒ€์ผ์ด ๋„ˆ๋ฌด ์ œ๊ฐ๊ฐ์ด๋ฉด ๊ฐ™์€ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ๋„ ์ฝ”๋“œ๋ฅผ ์ดํ•ดํ•˜์ง€ ๋ชปํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋ณดํ†ต ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋งˆ๋‹ค ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๋ณดํŽธ์ ์œผ๋กœ ํ†ต์šฉ๋˜๋Š” ์ฝ”๋”ฉ ๋ฐฉ์‹, ์–‘์‹์ด ์žˆ๊ธฐ ๋งˆ๋ จ์ด๊ณ  ํŒŒ์ด์ฌ๋„ ๋‚˜๋ฆ„์˜ ํ•ฉ์˜๋œ ์Šคํƒ€์ผ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

์Šคํƒ€์ผ์€ ๋‹ค์–‘ํ•œ ๋ถ€๋ถ„์— ์ ์šฉ๋˜๋Š”๋ฐ ์˜ˆ๋ฅผ ํ•˜๋‚˜๋งŒ ๋“ค์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด์ œ ๋ณ€์ˆ˜์— ๋Œ€ํ•ด ์ดํ•ดํ•˜๊ณ  ๊ณ„์‹คํ…๋ฐ์š”.

@shoark7
shoark7 / dont-be-afraid-with-new-functions-in-python.md
Last active June 18, 2019 03:37
ํŒŒ์ด์ฌ์„ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ, ํ•จ์ˆ˜๋ฅผ ๋งˆ์ฃผ์ณค์„ ๋•Œ ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ์š”?

์˜ค๋Š˜์€ ๋ฆฌ์ŠคํŠธ์™€ ํŠœํ”Œ์— ๋Œ€ํ•ด ์‚ดํŽด๋ดค์Šต๋‹ˆ๋‹ค. ๊ทธ์ค‘์—์„œ๋„ ๋ฆฌ์ŠคํŠธ์™€ ํŠœํ”Œ์˜ ์œ ์šฉํ•œ ๊ธฐ๋Šฅ(๋˜๋Š” ํ•จ์ˆ˜, ๋ฉ”์†Œ๋“œ)์„ ๋ช‡ ๊ฐ€์ง€ ์‚ดํŽด๋ดค๋Š”๋ฐ์š”. ๋ช‡ ๊ฐœ๋งŒ ๋‚˜์—ดํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

  • list.sort()
  • list.reverse()
  • list.append()
  • tuple.count()
  • tuple.index()
  • ... ๋“ฑ๋“ฑ

์ด๋Ÿฐ ๊ธฐ๋Šฅ์„ ์ฒ˜์Œ ๋ด์„œ ๋‚ฏ์„ค์œผ์…จ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ๋“ค์€ ์‹ค์ œ๋กœ ์œ ์šฉํ•˜๊ณ  ๋งŽ์ด ์“ฐ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ์–ตํ•˜๊ณ  ์žˆ์œผ๋ฉด ์ข‹์€๋ฐ์š”.

@shoark7
shoark7 / list-tuple-set-dict-in-python.md
Last active June 19, 2019 22:56
์–ด์ œ์˜ค๋Š˜ ํ•™์Šตํ•œ list, tuple, set, dict์˜ ๊ฐœ๋…์„ ์ข€๋” ์ปดํ“จํ„ฐ ๊ณตํ•™์ ์œผ๋กœ ์„ค๋ช…ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์–ด์ œ์˜ค๋Š˜ ํŒŒ์ด์ฌ์˜ ์ž๋ฃŒ๊ตฌ์กฐ(data structure)์ธ list, tuple, set, dict๋ฅผ ํ•™์Šตํ•˜์…จ์Šต๋‹ˆ๋‹ค. ์ด 4๊ฐœ์˜ ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ํŒŒ์ด์ฌ์—์„œ๋Š” ๋งค์šฐ ์ค‘์š”ํ•œ ๋‚ด์žฅ(built-in) ์ž๋ฃŒ๊ตฌ์กฐ๋กœ์„œ ์˜์ƒ์—์„œ ๊ฐ•์‚ฌ๋ถ„์ด ๊ณ„์† ๊ฐ•์กฐํ•˜์‹œ๋“ฏ ์ •๋ง์ •๋ง ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋“ค์€ ํŒŒ์ด์ฌ์„ ์‚ฌ์šฉํ•˜์‹œ๋ฉด์„œ ์ž์ฃผ ์ ‘ํ•˜์‹œ๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํŠนํžˆ list์™€ dict๋Š” ์ •๋ง ๋งŽ์ด ์“ฐ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ์˜์ƒ์—์„œ๋Š” ์ด 4๊ฐœ์˜ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ (list, tuple)๋Š” ์–ด์ œ, (set, dict)๋Š” ์˜ค๋Š˜, ์ด๋ ‡๊ฒŒ ๋‘ ๊ฐœ์”ฉ ๋‚˜๋ˆ ์„œ ๋ฐฐ์› ์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ์™œ 4๊ฐœ์˜ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ด์™€ ๊ฐ™์ด ์Œ์„ ์ง€์–ด ์„ค๋ช…ํ–ˆ๋Š”์ง€ ์ด๋“ค์˜ ํŠน์ง•์„ ๋ฐ”ํƒ•์œผ๋กœ ์„ค๋ช…๋“œ๋ฆฌ๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. (list, tuple), (set, dict)๋Š” ์„œ๋กœ ๊ฐœ์„ฑ๊ณผ ํ™œ์šฉ๋ฒ•์ด ๋‹ค๋ฅธ ์ž๋ฃŒ๊ตฌ์กฐ์ด์ง€๋งŒ ๊ฐ ์Œ์€ ๋‹ค๋ฅธ ์ž๋ฃŒ๊ตฌ์กฐ์— ๋น„ํ•ด ๋ณด๋‹ค ๊ณตํ†ต์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ์Œ์„ ๋‚˜๋ˆˆ ๊ธฐ์ค€์„ ์ €๋Š” ์„ ํ˜•, ๋น„์„ ํ˜•์œผ๋กœ ๊ตฌ๋ถ„ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.


1. list, tuple: ์„ ํ˜• ์ž๋ฃŒ๊ตฌ์กฐ

list, tuple์€ ๋Œ€ํ‘œ์ ์œผ๋กœ ์„ ํ˜• ์ž๋ฃŒ๊ตฌ์กฐ(linear data structure)๋ผ๋Š” ๊ณตํ†ต์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์„ ํ˜•์€ ์ผ๋‹จ์€ '์ž๋ฃŒ๊ตฌ์กฐ ์•ˆ์˜ ์ž๋ฃŒ๋“ค์ด ์ผ๋ ฌ๋กœ ์ด์–ด์ ธ ์žˆ๋‹ค'๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹œ๋ฉด ๋ฌด๋‚œํ•ฉ๋‹ˆ๋‹ค.

@shoark7
shoark7 / query-vs-command-method.md
Last active June 30, 2019 08:37
ํ•จ์ˆ˜๋ฅผ ๊ตฌ๋ถ„ํ•˜๋Š” ๊ธฐ์ค€์ด ๋˜๋Š” Query method์™€ Command method์— ๋Œ€ํ•ด ๊ฐ„๋žตํžˆ ์„ค๋ช…๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

์˜ค๋Š˜ ๊ณผ์ œ ์‹ฌํ™” 3๋ฒˆ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์•˜์Šต๋‹ˆ๋‹ค.

๋ฆฌ์ŠคํŠธ๋ฅผ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” sorted()์™€ .sort()์˜ ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค.
๋‘ ๋ฐฉ์‹์˜ ๋ฐฉ๋ฒ•์ƒ์˜ ์ฐจ์ด์ ๊ณผ ๋ฆฌํ„ด๊ฐ’์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‘ ๋ฐฉ์‹์ด ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅธ์ง€ ์„œ์ˆ ํ•ด ์ฃผ์„ธ์š”.

์ด ๋‘ ํ•จ์ˆ˜๋“ค ๋ง๊ณ ๋„ ์ˆ˜๋งŽ์€ ํ•จ์ˆ˜๋ฅผ ์ตœ๊ทผ์— ๋ฐฐ์šฐ๊ณ  ๊ณ„์‹œ๋Š”๋ฐ ์–ด๋–ค ํ•จ์ˆ˜๋Š” ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๊ณ , ๋‹ค๋ฅธ ํ•จ์ˆ˜๋Š” ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š๊ณ ... ์ฒ˜์Œ์— ์ถฉ๋ถ„ํžˆ ํ—ท๊ฐˆ๋ฆด ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ํ˜ผ๋ž€์Šค๋Ÿฌ์šฐ์‹ค ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์•„์š”. ๋ฌธ์ œ์—์„œ ๋ฆฌํ„ด๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ๋‘ ๋ฐฉ์‹์˜ ์ฐจ์ด๋ฅผ ์„œ์ˆ ํ•˜๋ผ๊ณ  ํ–ˆ๋Š”๋ฐ์š”. ์ด์™€ ๊ด€๋ จ๋œ ์†Œํ”„ํŠธ์›จ์–ด ๊ณตํ•™์  ๊ฐœ๋…์„ ์†Œ๊ฐœํ•ด๋“œ๋ฆฌ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์ผ๋‹จ ๋ฆฌํ„ด๊ฐ’ ๊ธฐ์ค€์œผ๋กœ ๋‘ ํ•จ์ˆ˜๋ฅผ ๊ตฌ๋ถ„ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค:

@shoark7
shoark7 / algorithm-sites.md
Last active March 27, 2026 07:26
๊ฐœ์ธ์ ์œผ๋กœ ์‚ฌ์šฉํ–ˆ๋˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‚ฌ์ดํŠธ๋“ค์„ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ผ๊ณ  ๋งŽ์ด ๋“ค์–ด๋ณด์…จ์„ ๊ฒ๋‹ˆ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๊ต๊ณผ์„œ์‹์œผ๋กœ ์ •์˜ํ•ด๋ณด๋ฉด '๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ์ผ๋ จ์˜ ์ ˆ์ฐจ'๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ์š”. ์ปดํ“จํ„ฐ๋กœ ์–ด๋–ค ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์•ผ ํ•  ๋•Œ, ์ฝ”๋”ฉ์œผ๋กœ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ• ์ง€์— ๋Œ€ํ•œ ๊ตฌ์ฒด์ ์ธ ๋ฐฉ๋ฒ•์„ ์ด์•ผ๊ธฐํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ์ˆซ์ž ๋ฐฐ์—ด์„ ์ •๋ ฌํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•ฉ์‹œ๋‹ค. ์ธ๊ฐ„์ด ๋ฐฐ์—ด์„ ๋Œ€์ถฉ ๋ณด๊ณ  ์ •๋ ฌํ•˜๊ธฐ๋Š” ์‰ฝ์ง€๋งŒ ์›์†Œ์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ˆ˜๋ฐฑ๋งŒ๊ฐœ์— ๋‹ฌํ•˜๋Š” ๋ฐฐ์—ด์—์„œ ์ปดํ“จํ„ฐ์—๊ฒŒ ์ผ์„ ์‹œ์ผœ์„œ ์ปดํ“จํ„ฐ๊ฐ€ ์ •๋ ฌํ•˜๊ฒŒ ํ•˜๋Š” ๊ฒƒ์€ ์‰ฝ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์ •๋ ฌ์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์—์„œ ๋งค์šฐ ์œ ๋ช…ํ•˜๊ณ  ๊ธฐ์ดˆ์ ์ธ ๋ถ„์•ผ๋กœ ์ •๋ ฌ์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•, ์ฆ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์ง€๊ธˆ๊นŒ์ง€ ์•Œ๋ ค์ง„ ๊ฒƒ๋งŒ ํ•ด๋„ ์ˆ˜์‹ญ๊ฐ€์ง€๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ณต๋ถ€ํ•˜๋Š” ๊ฒƒ์€ ๊ฝค ๋„์›€์ด ๋˜๋Š”๋ฐ์š”. ์ผ๋‹จ ์ฝ”๋”ฉ์„ ์‹œ์ž‘ํ•˜์‹œ๋Š” ๋ถ„๋“ค ์ž…์žฅ์—์„œ๋Š” ์ฝ”๋”ฉ์„ ํ•˜๊ฒŒ ๋˜์„œ ์ฝ”๋”ฉ๊ณผ ๋ฌธ๋ฒ•์— ์ต์ˆ™ํ•ด์ง€๋Š” ์žฅ์ ์ด ์žˆ๊ณ , ๋˜ ๊ฐœ๋ฐœ์ž์  ์‚ฌ๊ณ ๋ฅผ ํ•˜๋Š” ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š” ๊ฒƒ์ด ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ๊ฐœ๋ฐœ ํšŒ์‚ฌ๋“ค์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋Šฅ๋ ฅ์„ ํ…Œ์ŠคํŠธํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ทจ์—…์„ ๋ชฉํ‘œ๋กœ ๊ณต๋ถ€ํ•˜์‹ ๋‹ค๋ฉด ์†ํ•ด๋Š” ๋ณด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ €๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ข‹์•„ํ•ด์„œ ์กฐ๊ธˆ์”ฉ ํ’€์–ด์™”๋Š”๋ฐ์š”. ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ’€ ์ˆ˜ ์žˆ๋„๋ก ๋ฌธ์ œ๋ฅผ ๋‚ด์ฃผ๋Š” ์‚ฌ์ดํŠธ๋“ค์ด ์ •๋ง ๋งŽ์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ๊ทธ์ค‘์—์„œ ๋ช‡ ๊ฐ€์ง€๋งŒ ์†Œ๊ฐœํ•ด๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ์‚ฌ์ดํŠธ๋Š” ์ •๋ง ๋งŽ์€๋ฐ์š”, ๊ทธ์ค‘์—์„œ ์ œ๊ฐ€ ์ตœ์†Œ ๋ช‡ ๋ฒˆ์ด๋ผ๋„ ์จ๋ณธ ์‚ฌ์ดํŠธ๋“ค๋งŒ ์†Œ๊ฐœํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋” ์ข‹์€ ์‚ฌ์ดํŠธ๋“ค์ด ์žˆ์œผ๋ฉด ์†Œ๊ฐœํ•ด์ฃผ์‹œ๋ฉด ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.


from collections import deque
import math
def reverse_ends(n):
log = int(math.log10(n))
s = n // (10 ** log)
e = n % 10
n = n - e + s
n = n + (e - s) * 10 ** log
@shoark7
shoark7 / everything-is-class-in-python.md
Last active June 22, 2019 04:33
ํŒŒ์ด์ฌ์—์„œ๋Š” ๋ชจ๋“  ๊ฒƒ์ด ํด๋ž˜์Šค๋‹ค?

์˜ค๋Š˜์€ ํด๋ž˜์Šค์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์‹ค ํด๋ž˜์Šค๋ผ๋Š” ๊ฐœ๋…์ด ์–ด๋ ต๊ณ  ์กฐ๊ธˆ์€ ์ฒ ํ•™์ ์ด๊ธฐ๊นŒ์ง€ ํ•ด์„œ ์ดํ•ด๊ฐ€ ์ž˜ ์•ˆ ๊ฐ€์‹ค ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ํ–‰์—ฌ๋‚˜ ์ดํ•ด๊ฐ€ ๋‹น์žฅ์— ํž˜๋“œ์…”๋„ ์ •๋ง ๊ดœ์ฐฎ์€ ๊ฒŒ ์ €๋„ ์ด ๊ฐœ๋…์„ ์ •๋ง ์ตœ์†Œํ•œ์ด๋ผ๋„ ์ดํ•ดํ•˜๋Š” ๋ฐ 1๋…„์€ ๊ฑธ๋ฆฐ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํด๋ž˜์Šค๋Š” ์ผ๋‹จ์€ 'ํ˜„์‹ค์˜ ์‹ค์ œ ๊ฐœ๋…๊ณผ ์‚ฌ๋ฌผ(์ธ๊ฐ„, ์ฐจ, ๊ธธ๊ฑฐ๋ฆฌ์˜ BMW๋ฅผ)์„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๋‹จ์œ„๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ'์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์…”๋„ ๊ดœ์ฐฎ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋งŽ์ด ์จ๋ณด๋‹ค ๋ณด๋ฉด ๊ฒฐ๊ตญ์—๋Š” ์ดํ•ดํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ๋Š” ํด๋ž˜์Šค ๋˜๋Š” OOP(Object-Oriented Programming) ์ž์ฒด๋ณด๋‹ค๋Š” ํŒŒ์ด์ฌ์—์„œ์˜ ํด๋ž˜์Šค์˜ ํŠน์ง•์— ๋Œ€ํ•ด ๋ง์”€๋“œ๋ฆฌ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ด์ฌ์„ ๊ณ„์† ๊ณต๋ถ€ํ•˜์‹œ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ช…์ œ๋ฅผ ๋“ค์–ด๋ณด์‹ค ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. 'ํŒŒ์ด์ฌ์—์„œ๋Š” ๋ชจ๋“  ๊ฒƒ์ด ํด๋ž˜์Šค๋‹ค.' ์ด๊ฒŒ ๋Œ€๊ด€์ ˆ ๋ฌด์Šจ ๋œป์ผ๊นŒ์š”? ์ผ๋‹จ ์ € ๋ช…์ œ ์ž์ฒด๋Š” '์ฐธ'(True)์ž…๋‹ˆ๋‹ค. ์ด ๊ธฐ์ŠคํŠธ์—์„œ๋Š” ์ € ๋ช…์ œ๊ฐ€ ์™œ ์ฐธ์ธ์ง€ ๋Œ€๋žต์ ์œผ๋กœ๋ผ๋„ ํŒŒ์•…ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.


1. ํ•จ์ˆ˜ ์†Œ๊ฐœ: isinstance, issubclass

์ € ๋ช…์ œ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๋‚ด์žฅ ํ•จ์ˆ˜ isinstance, issubclass๋ฅผ ์‚ฌ์šฉํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ด€๋ จ ๋ฌธ์„œ(isinstance, issubclass)๊ฐ€ ์žˆ์–ด์„œ ๋งค์šฐ ์ž์„ธํ•˜๊ฒŒ ์„ค๋ช…ํ•˜์ง€๋Š” ์•Š์ง€๋งŒ ๋‘ ํ•จ์ˆ˜๋Š” ํด๋ž˜์Šค์™€ ๊ด€๋ จํ•œ ์ฐธ/๊ฑฐ์ง“์„ ํŒ๋ณ„ํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ํ•œ ์ค„ ์„ค๋ช…์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

@shoark7
shoark7 / what-is-self-in-python-method.md
Last active June 5, 2023 11:02
ํŒŒ์ด์ฌ์—์„œ ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ๋งˆ๋‹ค ์‚ฌ์šฉํ•˜๋Š” 'self' ์ธ์ž์˜ ๋œป์„ ์‚ดํŽด๋ด…์‹œ๋‹ค.

ํŒŒ์ด์ฌ์—์„œ ํด๋ž˜์Šค๋ฅผ ์ฒ˜์Œ ๋งŒ๋“ค๋ฉด ๋ชจ๋“  ๋ฉ”์†Œ๋“œ์˜ ์ฒซ ์ธ์ž๋Š” 'self'๋ผ๊ณ  ๋†“๊ณ  ์‹œ์ž‘ํ•˜๋Š”๋ฐ์š”. ์™œ ๊ทธ๋Ÿด๊นŒ์š”? ์˜ค๋Š˜์€ ๊ทธ ์ด์œ ๋ฅผ ๊ฐ„๋žตํ•˜๊ฒŒ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋จผ์ € ๊ฐ„๋‹จํžˆ ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

class Person:
    def __init__(self, name, job):
        self.name = name
        self.job = job
 
@shoark7
shoark7 / basic-terminology-in-programming.md
Last active June 30, 2023 05:52
ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ํ•„์ˆ˜์ ์ธ ์šฉ์–ด ์ •๋ฆฌ๋ฅผ ํ•ด๋ด…์‹œ๋‹ค!

๊ฐœ๋…์„ ๋จธ๋ฆฌ๋กœ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์„ ๋„˜์–ด, ํŒ€์›๊ณผ ์†Œํ†ตํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ทธ ์ด๋ฆ„์„ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์—ฌ๊ธฐ์„œ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๋งค์šฐ ๊ธฐ๋ณธ์ ์ธ ์šฉ์–ด๋ฅผ ์กฐ๊ธˆ ์ •์˜ํ•ด๋ณผ๊นŒ ํ•ฉ๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ๊ทธ์˜ ์ด๋ฆ„์„ ๋ถˆ๋Ÿฌ์ฃผ๊ธฐ ์ „์—๋Š” ๊ทธ๋Š” ๋‹ค๋งŒ ํ•˜๋‚˜์˜ ๋ชธ์ง“์— ์ง€๋‚˜์ง€ ์•Š์•˜๋‹ค.
๋‚ด๊ฐ€ ๊ทธ์˜ ์ด๋ฆ„์„ ๋ถˆ๋Ÿฌ์ฃผ์—ˆ์„ ๋•Œ, ๊ทธ๋Š” ๋‚˜์—๊ฒŒ๋กœ ์™€์„œ ๊ฝƒ์ด ๋˜์—ˆ๋‹ค.

๊น€์ถ˜์ˆ˜ <๊ฝƒ>

@shoark7
shoark7 / is_palindrome.py
Last active August 31, 2019 04:46
Introduce several ways to judge whether an word is a parlindrome.
# 1. basic: using for loop
def is_palindrome_basic(word):
SIZE = len(word)
for i in range(SIZE // 2):
if word[i] != word[SIZE-1-i]:
return False
return True
# 2. Pythonic way: reversing word easily