๐ŸšฉAlgorithm for Python

NtoZยท2023๋…„ 3์›” 20์ผ
0

Algorithm

๋ชฉ๋ก ๋ณด๊ธฐ
1/3
post-thumbnail

ํŒŒ์ด์ฌ ๋ชฉ์ฐจ

  • ํŒŒ์ด์ฌ : ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณต๋ถ€๋ฅผ ์œ„ํ•œ ํŒŒ์ด์ฌ ์ž๋ฃŒํ˜• / ์ œ์–ด๋ฌธ / ํ•จ์ˆ˜ ์ ํ”„ ํˆฌ ํŒŒ์ด์ฌ

์ฝ”ํ…Œ๋ฅผ ์œ„ํ•œ ํŒŒ์ด์ฌ ๋ฌธ๋ฒ• (์™„๋ฃŒ)
<์ž๋ฃŒํ˜•>
์ˆซ์žํ˜• : ์‚ฌ์น™์—ฐ์‚ฐ, ๋ชซ๊ตฌํ•˜๊ธฐ, ์ œ๊ณฑ์—ฐ์‚ฐ์ž
๋ฌธ์ž์—ด ์ž๋ฃŒํ˜• : ๋ฌธ์ž์—ด ๋งŒ๋“ค๊ธฐ / ์ด์Šค์ผ€์ดํ”„ ์ฝ”๋“œ / ๋ฌธ์ž์—ด ๋”ํ•ด์„œ ์—ฐ๊ฒฐํ•˜๊ธฐ / ๋ฌธ์ž์—ด ๊ณฑํ•˜๊ธฐ / ๋ฌธ์ž์—ด ๊ธธ์ด ๊ตฌํ•˜๊ธฐ / ๋ฌธ์ž์—ด ์ธ๋ฑ์‹ฑ๊ณผ ์Šฌ๋ผ์ด์‹ฑ - ๋ฌธ์ž์—ด ์ธ๋ฑ์‹ฑ?, ๋ฌธ์ž์—ด ์Šฌ๋ผ์ด์‹ฑ / ๋ฌธ์ž์—ด ํฌ๋งทํŒ… - ๋ฌธ์ž์—ด ํฌ๋งคํŒ… ๋”ฐ๋ผํ•˜๊ธฐ, ๋ฌธ์ž์—ด ํฌ๋งท ์ฝ”๋“œ, ํฌ๋งท ์ฝ”๋“œ์™€ ์ˆซ์ž ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๊ธฐ, format ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ ํฌ๋งคํŒ…, f๋ฌธ์ž์—ด ํฌ๋งคํŒ… / ๋ฌธ์ž์—ด ๊ด€๋ จ ํ•จ์ˆ˜๋“ค - ๋ฌธ์ž ๊ฐœ์ˆ˜ ์„ธ๊ธฐ(count), ์œ„์น˜ ์•Œ๋ ค์ฃผ๊ธฐ1(find), ์œ„์น˜ ์•Œ๋ ค์ฃผ๊ธฐ2(index), ๋ฌธ์ž์—ด ์‚ฝ์ž…(join), ์†Œ๋ฌธ์ž๋ฅผ ๋Œ€๋ฌธ์ž๋กœ ๋ฐ”๊พธ๊ธฐ(upper), ๋Œ€๋ฌธ์ž๋ฅผ ์†Œ๋ฌธ์ž๋กœ ๋ฐ”๊พธ๊ธฐ(lower), ์™ผ์ชฝ ๊ณต๋ฐฑ ์ง€์šฐ๊ธฐ(lstrip), ์˜ค๋ฅธ์ชฝ ๊ณต๋ฐฑ ์ง€์šฐ๊ธฐ(rstrip), ์–‘์ชฝ ๊ณต๋ฐฑ ์ง€์šฐ๊ธฐ(strip), ๋ฌธ์ž์—ด ๋ฐ”๊พธ๊ธฐ(replace), ๋ฌธ์ž์—ด ๋‚˜๋ˆ„๊ธฐ(split)
๋ฆฌ์ŠคํŠธ ์ž๋ฃŒํ˜• : ๋ฆฌ์ŠคํŠธ ์ธ๋ฑ์‹ฑ, ์Šฌ๋ผ์ด์‹ฑ / ๋ฆฌ์ŠคํŠธ ์—ฐ์‚ฐํ•˜๊ธฐ - ๋”ํ•˜๊ธฐ(+), ๋ฐ˜๋ณตํ•˜๊ธฐ(*), ๊ธธ์ด๊ตฌํ•˜๊ธฐ / ๋ฆฌ์ŠคํŠธ์˜ ์ˆ˜์ •๊ณผ ์‚ญ์ œ - ๊ฐ’ ์ˆ˜์ •ํ•˜๊ธฐ, del ํ•จ์ˆ˜ / ๋ฆฌ์ŠคํŠธ ๊ด€๋ จ ํ•จ์ˆ˜๋“ค - ๋ฆฌ์ŠคํŠธ์— ์š”์†Œ ์ถ”๊ฐ€(append), ๋ฆฌ์ŠคํŠธ ์ •๋ ฌ(sort), ๋ฆฌ์ŠคํŠธ ๋’ค์ง‘๊ธฐ(reverse), ์ธ๋ฑ์Šค ๋ฐ˜ํ™˜(index), ๋ฆฌ์ŠคํŠธ์— ์š”์†Œ ์‚ฝ์ž…(insert), ๋ฆฌ์ŠคํŠธ ์š”์†Œ ์ œ๊ฑฐ(remove), ๋ฆฌ์ŠคํŠธ ์š”์†Œ ๋„์ง‘์–ด๋‚ด๊ธฐ(pop), ๋ฆฌ์ŠคํŠธ์— ํฌํ•จ๋œ ์š”์†Œ x์˜ ๊ฐœ์ˆ˜ ์„ธ๊ธฐ(count), ๋ฆฌ์ŠคํŠธ ํ™•์žฅ(extend)
ํŠœํ”Œ ์ž๋ฃŒํ˜• : ํŠœํ”Œ์ด๋ž€? / ํŠœํ”Œ์˜ ์š”์†Œ๊ฐ’ ์ง€์šฐ๊ฑฐ๋‚˜ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์„๊นŒ? / ํŠœํ”Œ ๋‹ค๋ฃจ๊ธฐ - ์ธ๋ฑ์‹ฑํ•˜๊ธฐ, ์Šฌ๋ผ์ด์‹ฑํ•˜๊ธฐ, ํŠœํ”Œ ๋”ํ•˜๊ธฐ, ํŠœํ”Œ ๊ณฑํ•˜๊ธฐ, ํŠœํ”Œ ๊ธธ์ด ๊ตฌํ•˜๊ธฐ
๋”•์…”๋„ˆ๋ฆฌ ์ž๋ฃŒํ˜• : ๋”•์…”๋„ˆ๋ฆฌ๋ž€? / ๋”•์…”๋„ˆ๋ฆฌ ๋งŒ๋“ค๊ธฐ { , } / ๋”•์…”๋„ˆ๋ฆฌ ์Œ ์ถ”๊ฐ€, ์‚ญ์ œํ•˜๊ธฐ / ๋”•์…”๋„ˆ๋ฆฌ ์‚ฌ์šฉ๋ฐฉ๋ฒ• - Key ์‚ฌ์šฉํ•ด Value์–ป๊ธฐ, ๋”•์…”๋„ˆ๋ฆฌ ๋งŒ๋“ค ๋•Œ ์ฃผ์˜์‚ฌํ•ญ / ๋”•์…”๋„ˆ๋ฆฌ ๊ด€๋ จ ํ•จ์ˆ˜๋“ค - Key ๋ฆฌ์ŠคํŠธ ๋งŒ๋“ค๊ธฐ(keys), Value ๋ฆฌ์ŠคํŠธ ๋งŒ๋“ค๊ธฐ(values), Key, Value ์Œ ์–ป๊ธฐ(items) / Key, Value ์Œ ๋ชจ๋‘ ์ง€์šฐ๊ธฐ (clear) / Key๋กœ Value์–ป๊ธฐ(get) / ํ•ด๋‹น Key๊ฐ€ ๋”•์…”๋„ˆ๋ฆฌ ์•ˆ์— ์žˆ๋Š”์ง€ ์กฐ์‚ฌํ•˜๊ธฐ(in)
์ง‘ํ•ฉ ์ž๋ฃŒํ˜• : ์ง‘ํ•ฉ ์ž๋ฃŒํ˜• ๋งŒ๋“ค๊ธฐ (set) / ์ง‘ํ•ฉ ์ž๋ฃŒํ˜•ํŠน์ง• - list ๋งŒ๋“ค๊ธฐ, tuple ๋งŒ๋“ค๊ธฐ / ๊ต์ง‘ํ•ฉ(&, intersection), ํ•ฉ์ง‘ํ•ฉ(|, union), ์ฐจ์ง‘ํ•ฉ(-) ๊ตฌํ•˜๊ธฐ / ์ง‘ํ•ฉ ์ž๋ฃŒํ˜• ๊ด€๋ จ ํ•จ์ˆ˜๋“ค - ๊ฐ’ 1๊ฐœ ์ถ”๊ฐ€ํ•˜๊ธฐ(add), ๊ฐ’ ์—ฌ๋Ÿฌ ๊ฐœ ์ถ”๊ฐ€ํ•˜๊ธฐ(update), ํŠน์ • ๊ฐ’ ์ œ๊ฑฐํ•˜๊ธฐ(remove)
๋ถˆ ์ž๋ฃŒํ˜• : ๋ถˆ ์ž๋ฃŒํ˜•?(True, False / type() / ์กฐ๊ฑด๋ฌธ์˜ ๋ฆฌํ„ด ๊ฐ’) / ์ž๋ฃŒํ˜•์˜ ์ฐธ๊ณผ ๊ฑฐ์ง“ / ๋ถˆ ์—ฐ์‚ฐ - bool()ํ•จ์ˆ˜
๋ณ€์ˆ˜, ์ž๋ฃŒํ˜•์˜ ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๊ณต๊ฐ„: ๋ณ€์ˆ˜ ๋งŒ๋“ค๊ธฐ / ๋ณ€์ˆ˜๋ž€? / ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ณต์‚ฌํ•˜๊ณ ์ž ํ• ๋•Œ - (is ํ•จ์ˆ˜) , [:] ์ด์šฉ, copy ๋ชจ๋“ˆ ์ด์šฉ, ๋ฆฌ์ŠคํŠธ ์ž๋ฃŒํ˜• ์ž์ฒด ํ•จ์ˆ˜ copy ํ•จ์ˆ˜ ์ด์šฉ / ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“œ๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐฉ๋ฒ•
<์ œ์–ด๋ฌธ>
if๋ฌธ : if๋ฌธ์˜ ํ•„์š”์„ฑ / if๋ฌธ์˜ ๊ธฐ๋ณธ ๊ตฌ์กฐ / ๋“ค์—ฌ์“ฐ๊ธฐ / ์กฐ๊ฑด๋ฌธ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€? - ๋น„๊ต์—ฐ์‚ฐ์ž , and, or, not / in, not in / ๋‹ค์–‘ํ•œ ์กฐ๊ฑด์„ ํŒ๋‹จํ•˜๋Š” elif / ์กฐ๊ฑด๋ถ€ ํ‘œํ˜„์‹(๋ณ€์ˆ˜ = ์กฐ๊ฑด๋ฌธ์ด_์ฐธ์ธ_๊ฒฝ์šฐ์˜_๊ฐ’ if ์กฐ๊ฑด๋ฌธ else ์กฐ๊ฑด๋ฌธ์ด_๊ฑฐ์ง“์ธ_๊ฒฝ์šฐ์˜_๊ฐ’)
while๋ฌธ : while๋ฌธ์˜ ๊ธฐ๋ณธ ๊ตฌ์กฐ / while๋ฌธ ๋งŒ๋“ค๊ธฐ / while๋ฌธ ๊ฐ•์ œ๋กœ ๋น ์ ธ๋‚˜๊ฐ€๊ธฐ / while๋ฌธ์˜ ๋งจ ์ฒ˜์Œ์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ / ๋ฌดํ•œ ๋ณ€์ˆ˜
for๋ฌธ : for๋ฌธ์˜ ๊ธฐ๋ณธ ๊ตฌ์กฐ / for ๋ฌธ ์ดํ•ดํ•˜๊ธฐ - ์ „ํ˜•์ ์ธ for๋ฌธ, ๋‹ค์–‘ํ•œ for๋ฌธ์˜ ์‚ฌ์šฉ, for๋ฌธ์˜ ์‘์šฉ / for๋ฌธ๊ณผ continue / for๋ฌธ๊ณผ ํ•จ๊ป˜ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” range ํ•จ์ˆ˜ - range ํ•จ์ˆ˜์˜ ์˜ˆ์‹œ ์‚ดํŽด๋ณด๊ธฐ, for์™€ range๋ฅผ ์ด์šฉํ•œ ๊ตฌ๊ตฌ๋‹จ / ๋ฆฌ์ŠคํŠธ ์ปดํ”„๋ฆฌํ—จ์…˜ ์‚ฌ์šฉํ•˜๊ธฐ[ํ‘œํ˜„์‹ for ํ•ญ๋ชฉ in ๋ฐ˜๋ณต๊ฐ€๋Šฅ๊ฐ์ฒด if ์กฐ๊ฑด๋ฌธ]
<ํŒŒ์ด์ฌ์˜ ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ>
ํ•จ์ˆ˜ : ํ•จ์ˆ˜๋ž€ ๋ฌด์—‡์ธ๊ฐ€? / ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ผ๊นŒ? / ํŒŒ์ด์ฌ ํ•จ์ˆ˜์˜ ๊ตฌ์กฐdef / ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ์ธ์ˆ˜ / ์ž…๋ ฅ๊ฐ’๊ณผ ๋ฆฌํ„ด๊ฐ’์— ๋”ฐ๋ฅธ ํ•จ์ˆ˜์˜ ํ˜•ํƒœ - ์ผ๋ฐ˜์ ์ธ ํ•จ์ˆ˜, ์ž…๋ ฅ๊ฐ’์ด ์—†๋Š” ํ•จ์ˆ˜, ๋ฆฌํ„ด๊ฐ’์ด ์—†๋Š” ํ•จ์ˆ˜, ์ž…๋ ฅ๊ฐ’๊ณผ ๋ฆฌํ„ด๊ฐ’ ๋ชจ๋‘๊ฐ€ ์—†๋Š” ํ•จ์ˆ˜ / ๋งค๊ฐœ๋ณ€์ˆ˜ ์ง€์ •ํ•˜์—ฌ ํ˜ธ์ถœํ•˜๊ธฐ / ์ž…๋ ฅ๊ฐ’์ด ๋ช‡ ๊ฐœ๊ฐ€ ๋ ์ง€ ๋ชจ๋ฅผ ๋•Œ๋Š” ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ?
def ํ•จ์ˆ˜์ด๋ฆ„(*๋งค๊ฐœ๋ณ€์ˆ˜) / ํ‚ค์›Œ๋“œ ๋งค๊ฐœ๋ณ€์ˆ˜ kwargs / ํ•จ์ˆ˜์˜ ๋ฆฌํ„ด๊ฐ’์€ ์–ธ์ œ๋‚˜ ํ•˜๋‚˜์ด๋‹ค / ๋งค๊ฐœ๋ณ€์ˆ˜์— ์ดˆ๊นƒ๊ฐ’ ๋ฏธ๋ฆฌ ์„ค์ •ํ•˜๊ธฐ / ํ•จ์ˆ˜ ์•ˆ์—์„œ ์„ ์–ธํ•œ ๋ณ€์ˆ˜์˜ ํšจ๋ ฅ ๋ฒ”์œ„ / ํ•จ์ˆ˜ ์•ˆ์—์„œ ํ•จ์ˆ˜ ๋ฐ–์˜ ๋ณ€์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ• - return ์‚ฌ์šฉํ•˜๊ธฐ, global ๋ช…๋ น์–ด ์‚ฌ์šฉํ•˜๊ธฐ(๋น„์ถ”์ฒœ)/ lamda ํ•จ์ˆ˜๋ช… = lambda ๋งค๊ฐœ๋ณ€์ˆ˜1, ๋งค๊ฐœ๋ณ€์ˆ˜2, ... : ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ด์šฉํ•œ ํ‘œํ˜„์‹


๋ฆฌ์ŠคํŠธ ๋‹ค๋ฃจ๊ธฐ

1. ๋ฆฌ์ŠคํŠธ์˜ ์„ ์–ธ

  • a = list()
  • a = [1, 2, 3]

2. ๋ฆฌ์ŠคํŠธ ์ ‘๊ทผํ•˜๊ธฐ

  • 0๋ฒˆ์งธ ์›์†Œ ์ ‘๊ทผํ•˜๊ธฐ
    a[0]
  • 0๋ฒˆ์งธ ์›์†Œ ์—…๋ฐ์ดํŠธ ํ•˜๊ธฐ
    a[0] = 3

3. ๋ฆฌ์ŠคํŠธ์˜ ์›์†Œ ์ถ”๊ฐ€

๋ฆฌ์ŠคํŠธ์˜ ์›์†Œ ์ถ”๊ฐ€ ๊ฐ™์€ ๊ฒฝ์šฐ, ๋งˆ์ง€๋ง‰์— ์›์†Œ๋ฅผ ์‚ฝ์ž…ํ•˜๋Š” ๊ฒƒ๊ณผ ์ค‘๊ฐ„์— ์›์†Œ๋ฅผ ์‚ฝ์ž…ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.

  • ๋งˆ์ง€๋ง‰์— ์›์†Œ ์ถ”๊ฐ€:
    ๋ฆฌ์ŠคํŠธ์˜ ๋งˆ์ง€๋ง‰์— ์›์†Œ๋ฅผ ์‚ฝ์ž…ํ•˜๋Š” ๊ฒฝ์šฐ ๋งจ ๋’ค์— ์›์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋˜์–ด์„œ O(1)์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ–๋Š”๋‹ค.
    a.append(1)

  • ์ค‘๊ฐ„์— ์›์†Œ ์ถ”๊ฐ€:
    ํ•˜์ง€๋งŒ ๋ฆฌ์ŠคํŠธ์˜ ์ค‘๊ฐ„์— ์›์†Œ๋ฅผ ์‚ฝ์ž…ํ•˜๋Š” ๊ฒฝ์šฐ, ์›์†Œ๋ฅผ ์‚ฝ์ž…ํ•œ ํ›„ ๋’ค์˜ ์›์†Œ๋“ค์„ ํ•œ ์นธ์”ฉ ๋ฏธ๋ฃจ์–ด์•ผ ํ•˜๊ธฐ์— O(n)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ–๋Š”๋‹ค.
    a.insert(2,10)
    โžก๏ธ 2๋ฒˆ์งธ index์— 10์„ ์ถ”๊ฐ€ํ•œ๋‹ค.

4. ๋ฆฌ์ŠคํŠธ์˜ ์›์†Œ ์‚ญ์ œ

  • ๋งˆ์ง€๋ง‰ ์›์†Œ ์‚ญ์ œ :
    ๋ฆฌ์ŠคํŠธ์˜ ๋งˆ์ง€๋ง‰ ์›์†Œ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ฒฝ์šฐ, ๋งจ ๋’ค์˜ ์›์†Œ๋ฅผ ์‚ญ์ œํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋˜๊ธฐ์— O(1)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ–๋Š”๋‹ค.
    a.pop()

  • ์ค‘๊ฐ„ ์›์†Œ ์‚ญ์ œ:
    ํ•˜์ง€๋งŒ ๋ฆฌ์ŠคํŠธ์˜ ์ค‘๊ฐ„ ์›์†Œ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ฒฝ์šฐ, ์›์†Œ๋ฅผ ์‚ญ์ œํ•œ ํ›„ ๋’ค์˜ ์›์†Œ๋“ค์„ ํ•œ ์นธ์”ฉ ๋‹น๊ฒจ์•ผ๊ธฐ์— O(n)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ–๋Š”๋‹ค.
    a.pop(2)
    โžก๏ธ 2๋ฒˆ์งธ index์— ์žˆ๋Š” ๊ฐ’์„ ์‚ญ์ œํ•œ๋‹ค.
    a.remove(2)
    โžก๏ธ a์—์„œ ์ œ์ผ ์•ž์— ์žˆ๋Š” ๊ฐ’ 2๋ฅผ ์ฐพ์€ ํ›„ ์‚ญ์ œํ•œ๋‹ค.
    โžก๏ธ ๋งŒ์•ฝ์— a์— 2๊ฐ€ ์—†์œผ๋ฉด, error๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

profile
9์—์„œ 0์œผ๋กœ, ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ๋ธ”๋กœ๊ทธ

0๊ฐœ์˜ ๋Œ“๊ธ€