728x90

Algorithm 20

[Algorithm] ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜_6(ํ€ต ์ •๋ ฌ)

06-6 ํ€ต ์ •๋ ฌ ํ€ต ์ •๋ ฌ ์•Œ์•„๋ณด๊ธฐ ํ€ต ์ •๋ ฌ(quick sort): ๊ฐ€์žฅ ๋น ๋ฅธ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์œ„ ๊ทธ๋ฆผ์€ ํ€ต ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•™์ƒ ๊ทธ๋ฃน์„ ํ‚ค ์ˆœ์„œ๋กœ ์ •๋ ฌํ•˜๋Š” ๊ณผ์ •์„ ๋‚˜ํƒ€๋ƒˆ์Šต๋‹ˆ๋‹ค. ๋จผ์ € ํ‚ค๊ฐ€ 168cm์ธ ํ•™์ƒ A๋ฅผ ์„ ํƒํ•˜์—ฌ ์ด ํ•™์ƒ์„ ๊ธฐ์ค€์œผ๋กœ 168cm ๋ฏธ๋งŒ์ธ ๊ทธ๋ฃน๊ณผ 168cm ์ด์ƒ์ธ ๊ทธ๋ฃน์œผ๋กœ ๋‚˜๋ˆ•๋‹ˆ๋‹ค. ์ด๋•Œ ๊ทธ๋ฃน์„ ๋‚˜๋ˆ„๋Š” ๊ธฐ์ค€(ํ•™์ƒ A์˜ ํ‚ค)์„ ํ”ผ๋ฒ—(pivot)์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. [ํ”ผ๋ฒ—์€ ๋‹ค๋ฅธ ๋ง๋กœ ์ค‘์‹ฌ์ถ•์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ํ”ผ๋ฒ—์€ ์ž„์˜๋กœ ์„ ํƒํ•  ์ˆ˜ ์žˆ๊ณ , ์„ ํƒ๋œ ํ”ผ๋ฒ—์€ 2๊ฐœ๋กœ ๋‚˜๋ˆˆ ๊ทธ๋ฃน ์–ด๋””์— ๋„ฃ์–ด๋„ ์ƒ๊ด€์—†์Šต๋‹ˆ๋‹ค.] ๋‹ค์‹œ ๊ฐ ๊ทธ๋ฃน์—์„œ ํ”ผ๋ฒ—์„ ์„ ํƒํ•˜์—ฌ ๋‚˜๋ˆ„๊ธฐ๋ฅผ ๋ฐ˜๋ณตํ•˜๋ฉฐ ๋ชจ๋“  ๊ทธ๋ฃน์ด 1๋ช…์”ฉ ๋‚จ์œผ๋ฉด ์ •๋ ฌ์ด ์™„๋ฃŒ๋ฉ๋‹ˆ๋‹ค. ๋ฐฐ์—ด์„ ๋‘ ๊ทธ๋ฃน์œผ๋กœ ๋‚˜๋ˆ„๊ธฐ ๋จผ์ € ํ”ผ๋ฒ—์„ x, ์™ผ์ชฝ ๋ ์›์†Œ์˜ ์ธ๋ฑ์Šค๋ฅผ pl(์™ผ์ชฝ ์ปค์„œ), ์˜ค..

Code/Algorithm 2023.01.08

[Algorithm] ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜_5(์…ธ ์ •๋ ฌ)

06-5 ์…ธ ์ •๋ ฌ ๋‹จ์ˆœ ์‚ฝ์ž… ์ •๋ ฌ์˜ ํŠน์ง• ์žฅ์ : ์ด๋ฏธ ์ •๋ ฌ์„ ๋งˆ์ณค๊ฑฐ๋‚˜ ์ •๋ ฌ์ด ๊ฑฐ์˜ ๋๋‚˜๊ฐ€๋Š” ์ƒํƒœ์—์„œ๋Š” ์†๋„๊ฐ€ ์•„์ฃผ ๋น ๋ฆ…๋‹ˆ๋‹ค. ๋‹จ์ : ์‚ฝ์ž…ํ•  ์œ„์น˜๊ฐ€ ๋ฉ€๋ฆฌ ๋–จ์–ด์ ธ ์žˆ์œผ๋ฉด ์ด๋™ ํšŸ์ˆ˜๊ฐ€ ๋งŽ์•„์ง‘๋‹ˆ๋‹ค. ์…ธ ์ •๋ ฌ ์•Œ์•„๋ณด๊ธฐ ์…ธ ์ •๋ ฌ(shell sort): ๋‹จ์ˆœ ์‚ฝ์ž… ์ •๋ ฌ์˜ ์žฅ์ ์€ ์‚ด๋ฆฌ๊ณ  ๋‹จ์ ์€ ๋ณด์™„ํ•˜์—ฌ ๋” ๋น ๋ฅด๊ฒŒ ์ •๋ ฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์…ธ ์ •๋ ฌ์€ ๋‹จ์ˆœ ์‚ฝ์ž… ์ •๋ ฌ์˜ ์žฅ์ ์„ ์‚ด๋ฆฌ๊ณ  ๋‹จ์ ์„ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ •๋ ฌ ํšŸ์ˆ˜๋Š” ๋Š˜์–ด๋‚˜์ง€๋งŒ ์ „์ฒด์ ์œผ๋กœ ์›์†Œ์˜ ์ด๋™ ํšŸ์ˆ˜๊ฐ€ ์ค„์–ด๋“ค์–ด ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค. ์‹ค์Šต 6-8 ์…ธ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ตฌํ˜„ํ•˜๊ธฐ # ์…ธ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ตฌํ˜„ํ•˜๊ธฐ from typing import MutableSequence def shell_sort(a: MutableSequence) -> None: """์…ธ ์ •๋ ฌ""" n = l..

Code/Algorithm 2023.01.08

[Algorithm] ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜_4(๋‹จ์ˆœ ์‚ฝ์ž… ์ •๋ ฌ)

06-4 ๋‹จ์ˆœ ์‚ฝ์ž… ์ •๋ ฌ ๋‹จ์ˆœ ์‚ฝ์ž… ์ •๋ ฌ ์•Œ์•„๋ณด๊ธฐ ๋‹จ์ˆœ ์‚ฝ์ž… ์ •๋ ฌ(straight insertion sort): ์ฃผ๋ชฉํ•œ ์›์†Œ๋ณด๋‹ค ๋” ์•ž์ชฝ์—์„œ ์•Œ๋งž์€ ์œ„์น˜๋กœ ์‚ฝ์ž…ํ•˜๋ฉฐ ์ •๋ ฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋‹จ์ˆœ ์„ ํƒ ์ •๋ ฌ๊ณผ ๋น„์Šทํ•ด ๋ณด์ด์ง€๋งŒ ๊ฐ’์ด ๊ฐ€์žฅ ์ž‘์€ ์›์†Œ๋ฅผ ์„ ํƒํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ ์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์ •๋ ฌ๋œ ๋ถ€๋ถ„๊ณผ ์•„์ง ์ •๋ ฌ๋˜์ง€ ์•Š์€ ๋ถ€๋ถ„์—์„œ ๋‹ค์‹œ ๋ฐฐ์—ด์„ ๊ตฌ์„ฑํ•  ๊ฒฝ์šฐ์—๋Š” ๋‹ค์Œ ์ž‘์—…์„ n - 1๋ฒˆ ๋ฐ˜๋ณตํ•˜๋ฉด ์ •๋ ฌ์ด ์™„๋ฃŒ๋ฉ๋‹ˆ๋‹ค. ์•„์ง ์ •๋ ฌ๋˜์ง€ ์•Š์€ ๋ถ€๋ถ„์˜ ๋งจ ์•ž ์›์†Œ๋ฅผ ์ •๋ ฌ๋œ ๋ถ€๋ถ„์˜ ์•Œ๋งž์€ ์œ„์น˜์— ์‚ฝ์ž…ํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์ˆœ ์‚ฝ์ž… ์ •๋ ฌ์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ์š”๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. for i in range(1, n): tmp ← a[i]๋ฅผ ๋„ฃ์Šต๋‹ˆ๋‹ค. tmp๋ฅผ a[0], ···, a[i -1]์˜ ์•Œ๋งž์€ ์œ„์น˜์— ์‚ฝ์ž…ํ•ฉ๋‹ˆ๋‹ค. ์œ„ ๊ทธ๋ฆผ์—์„œ ๋ฐ˜๋ณต ์ œ์–ด ๋ณ€์ˆ˜ j์— i..

Code/Algorithm 2022.12.26

[Algorithm] ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜_3(๋‹จ์ˆœ ์„ ํƒ ์ •๋ ฌ)

06-3 ๋‹จ์ˆœ ์„ ํƒ ์ •๋ ฌ ๋‹จ์ˆœ ์„ ํƒ ์ •๋ ฌ ์•Œ์•„๋ณด๊ธฐ ๋‹จ์ˆœ ์„ ํƒ ์ •๋ ฌ(straight selection sort): ๊ฐ€์žฅ ์ž‘์€ ์›์†Œ๋ถ€ํ„ฐ ์„ ํƒํ•ด ์•Œ๋งž์€ ์œ„์น˜๋กœ ์˜ฎ๊ธฐ๋Š” ์ž‘์—…์„ ๋ฐ˜๋ณตํ•˜๋ฉฐ ์ •๋ ฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋‹จ์ˆœ ์„ ํƒ ์ •๋ ฌ์—์„œ ๊ตํ™˜ ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์•„์ง ์ •๋ ฌํ•˜์ง€ ์•Š์€ ๋ถ€๋ถ„์—์„œ ๊ฐ’์ด ๊ฐ€์žฅ ์ž‘์€ ์›์†Œ a[min]์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. a[min]๊ณผ ์•„์ง ์ •๋ ฌํ•˜์ง€ ์•Š์€ ๋ถ€๋ถ„์—์„œ ๋งจ ์•ž์— ์žˆ๋Š” ์›์†Œ๋ฅผ ๊ตํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์„ n - 1๋ฒˆ ๋ฐ˜๋ณตํ•˜๋ฉด ์ •๋ ฌํ•˜์ง€ ์•Š์€ ๋ถ€๋ถ„์ด ์—†์–ด์ง€๋ฉด์„œ ์ •์ฒด ์ •๋ ฌ์„ ์™„๋ฃŒํ•ฉ๋‹ˆ๋‹ค. ์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ฐœ์š”๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. for i in range(n - 1): min# a[i], ···, a[n-1]์—์„œ ํ‚ค๊ฐ’์ด ๊ฐ€์žฅ ์ž‘์€ ์›์†Œ์˜ ์ธ๋ฑ์Šค a[i]์™€ a[min]์˜ ๊ฐ’์„ ๊ตํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์‹ค์Šต 6-6 ๋‹จ์ˆœ ์„ ํƒ ..

Code/Algorithm 2022.12.26

[Algorithm] ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜_2(๋ฒ„๋ธ” ์ •๋ ฌ)

06-2 ๋ฒ„๋ธ” ์ •๋ ฌ ๋ฒ„๋ธ” ์ •๋ ฌ(bubble sort): ์ด์›ƒํ•œ ๋‘ ์›์†Œ์˜ ๋Œ€์†Œ ๊ด€๊ณ„๋ฅผ ๋น„๊ตํ•˜์—ฌ ํ•„์š”์— ๋”ฐ๋ผ ๊ตํ™˜์„ ๋ฐ˜๋ณตํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ, ๋‹จ์ˆœ ๊ตํ™˜ ์ •๋ ฌ์ด๋ผ๊ณ ๋„ ํ•ฉ๋‹ˆ๋‹ค. ๋ฒ„๋ธ” ์ •๋ ฌ ์•Œ์•„๋ณด๊ธฐ ์œ„ ๊ทธ๋ฆผ์€ ์ด์›ƒํ•œ ์›์†Œ๋ฅผ ๋น„๊ตํ•˜๊ณ , ํ•„์š”ํ•˜๋ฉด ๊ตํ™˜ํ•˜๋Š” ์ „์ฒด ์ž‘์—… ๊ณผ์ •์ž…๋‹ˆ๋‹ค. ์ด๋•Œ ์›์†Œ ์ˆ˜๊ฐ€ n์ธ ๋ฐฐ์—ด์—์„œ n -1๋ฒˆ ๋น„๊ต·๊ตํ™˜์„ ํ•˜๋ฉด ๊ฐ€์žฅ ์ž‘์€ ์›์†Œ 1์ด ๋งจ ์•ž์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ผ๋ จ์˜ ๋น„๊ต·๊ตํ™˜ํ•˜๋Š” ๊ณผ์ •์„ ํŒจ์Šค(pass)๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ฒ„๋ธ” ์ •๋ ฌ ํ”„๋กœ๊ทธ๋žจ ์‹ค์Šต 6-1 ๋ฒ„๋ธ” ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ตฌํ˜„ํ•˜๊ธฐ ์ด ํ”„๋กœ๊ทธ๋žจ์€ n๊ฐœ์˜ ์›์†Œ ์ˆ˜์™€ ๊ฐ๊ฐ์˜ ์›์†Ÿ๊ฐ’์„ ์ž…๋ ฅ๋ฐ›์Šต๋‹ˆ๋‹ค. i๊ฐ’์„ 0๋ถ€ํ„ฐ n - 2๊นŒ์ง€ 1์”ฉ ์ฆ๊ฐ€์‹œํ‚ค๊ณ , ํŒจ์Šค๋ฅผ n - 1๋ฒˆ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. # ๋ฒ„๋ธ” ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ตฌํ˜„ํ•˜๊ธฐ from typing import Mutab..

Code/Algorithm 2022.12.19

[Algorithm] ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜_1

06-1 ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ •๋ ฌ์ด๋ž€? ์ •๋ ฌ(sorting): ์ด๋ฆ„, ํ•™๋ฒˆ, ํ•™์  ๋“ฑ์˜ ํ‚ค(key)๋ฅผ ํ•ญ๋ชฉ๊ฐ’์˜ ๋Œ€์†Œ ๊ด€๊ณ„์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ ์ง‘ํ•ฉ์„ ์ผ์ •ํ•œ ์ˆœ์„œ๋กœ ๋ฐ”๊พธ์–ด ๋Š˜์—ฌ๋†“๋Š” ์ž‘์—…์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋ฆ„์ฐจ์ˆœ(ascending order): ๊ฐ’์ด ์ž‘์€ ๋ฐ์ดํ„ฐ๋ฅผ ์•ž์ชฝ์— ๋Š˜์–ด๋†“๋Š” ๊ฒƒ ๋‚ด๋ฆผ์ฐจ์ˆœ(descending order): ๊ฐ’์ด ํฐ ๋ฐ์ดํ„ฐ๋ฅผ ์•ž์ชฝ์— ๋Š˜์–ด๋†“๋Š” ๊ฒƒ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์•ˆ์ •์„ฑ ์•ˆ์ •์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜: ๊ฐ’์ด ๊ฐ™์€ ์›์†Œ์˜ ์ˆœ์„œ๊ฐ€ ์ •๋ ฌํ•œ ํ›„์—๋„ ์œ ์ง€๋˜๋Š” ๊ฒƒ ์•ˆ์ •์ ์ด์ง€ ์•Š์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜: ์ •๋ ฌํ•œ ํ›„์—๋„ ์šฐ๋„ˆ๋ž˜์˜ ์ˆœ์„œ๊ฐ€ ์œ ์ง€๋œ๋‹ค๋Š” ๋ณด์žฅ์„ ํ•  ์ˆ˜ ์—†๋Š” ๊ฒƒ ๋‚ด๋ถ€ ์ •๋ ฌ๊ณผ ์™ธ๋ถ€ ์ •๋ ฌ ๋‚ด๋ถ€ ์ •๋ ฌ(internal sorting): ์ •๋ ฌํ•  ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์˜ ๋ฐฐ์—ด์— ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์™ธ๋ถ€ ์ •๋ ฌ(external sort..

Code/Algorithm 2022.12.19

[Algorithm] ์žฌ๊ท€ ์•Œ๊ณ ๋ฆฌ์ฆ˜_4(8ํ€ธ ๋ฌธ์ œ)

05-4 8ํ€ธ ๋ฌธ์ œ 8ํ€ธ ๋ฌธ์ œ ์•Œ์•„๋ณด๊ธฐ 8ํ€ธ ๋ฌธ์ œ(8-Queen prooblem)๋Š” ์žฌ๊ท€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ค๋ช…ํ•  ๋•Œ ์ž์ฃผ ๋‚˜์˜ค๋Š” ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค. 8๊ฐœ์˜ ํ€ธ์ด ์„œ๋กœ ๊ณต๊ฒฉํ•˜์—ฌ ์žก์„ ์ˆ˜ ์—†๋„๋ก 8 x 8 ์ฒด์ŠคํŒ์— ๋ฐฐ์น˜ํ•˜์„ธ์š”. ๋ถ„๊ธฐ ์ž‘์—…์œผ๋กœ ๋ฌธ์ œ ํ•ด๊ฒฐํ•˜๊ธฐ ์‹ค์Šต 5-7 ๊ฐ ์—ด์— ํ€ธ์„ 1๊ฐœ ๋ฐฐ์น˜ํ•˜๋Š” ์กฐํ•ฉ์„ ์žฌ๊ท€์ ์œผ๋กœ ๋‚˜์—ดํ•˜๊ธฐ # ๊ฐ ์—ด์— ํ€ธ์„ 1๊ฐœ ๋ฐฐ์น˜ํ•˜๋Š” ์กฐํ•ฉ์„ ์žฌ๊ท€์ ์œผ๋กœ ๋‚˜์—ดํ•˜๊ธฐ pos = [0] * 8 # ๊ฐ ์—ด์—์„œ ํ€ธ์˜ ์œ„์น˜๋ฅผ ์ถœ๋ ฅ def put() -> None: """๊ฐ ์—ด์— ๋ฐฐ์น˜ํ•œ ํ€ธ์˜ ์œ„์น˜๋ฅผ ์ถœ๋ ฅ""" for i in range(8): print(f'{pos[i]:2}',end='') print() def set(i: int) -> None: """i์—ด์— ํ€ธ์„ ๋ฐฐ์น˜""" for j in range(8): po..

Code/Algorithm 2022.12.16

[Algorithm] ์žฌ๊ท€ ์•Œ๊ณ ๋ฆฌ์ฆ˜_3(ํ•˜๋…ธ์ด์˜ ํƒ‘)

05-3 ํ•˜๋…ธ์ด์˜ ํƒ‘ ํ•˜๋…ธ์ด์˜ ํƒ‘ ์•Œ์•„๋ณด๊ธฐ ํ•˜๋…ธ์ด์˜ ํƒ‘(towers of Hanoi): ์ž‘์€ ์›๋ฐ˜์ด ์œ„์—, ํฐ ์›๋ฐ˜์ด ์•„๋ž˜์— ์œ„์น˜ํ•˜๋Š” ๊ทœ์น™์„ ์ง€ํ‚ค๋ฉด์„œ ๊ธฐ๋‘ฅ 3๊ฐœ๋ฅผ ์ด์šฉํ•ด์„œ ์›๋ฐ˜์„ ์˜ฎ๊ธฐ๋Š” ๋ฌธ์ œ ํฌ๊ธฐ๊ฐ€ ๋ชจ๋‘ ๋‹ค๋ฅธ ์›๋ฐ˜์ด ์ฒซ ๋ฒˆ์งธ ๊ธฐ๋‘ฅ์— ์Œ“์—ฌ ์žˆ๋Š” ์ƒํƒœ๋กœ ์‹œ์ž‘ํ•˜์—ฌ ์ด ์ƒํƒœ์—์„œ ๋ชจ๋“  ์›๋ฐ˜์„ ์„ธ ๋ฒˆ์งธ ๊ธฐ๋‘ฅ์— ์ตœ์†Œ ํšŸ์ˆ˜๋กœ ์˜ฎ๊ธฐ๋Š” ๋ฌธ์ œ ์›๋ฐ˜์€ 1๊ฐœ์”ฉ ์˜ฎ๊ธธ ์ˆ˜ ์žˆ์œผ๋ฉฐ ํฐ ์›๋ฐ˜์€ ์ž‘์€ ์›๋ฐ˜ ์œ„์— ์Œ“์„ ์ˆ˜ ์—†๋‹ค๋Š” ๊ทœ์น™์„ ์ง€์ผœ์•ผ ํ•ฉ๋‹ˆ๋‹ค. [ํ•˜๋…ธ์ด์˜ ํƒ‘ ์•Œ๊ณ ๋ฆฌ์ฆ˜] [ํ•˜๋…ธ์ด์˜ ํƒ‘ ๋ฌธ์ œ ํ’€์ด] ์‹ค์Šต 5-6 ํ•˜๋…ธ์ด์˜ ํƒ‘ ๊ตฌํ˜„ํ•˜๊ธฐ # ํ•˜๋…ธ์ด์˜ ํƒ‘ ๊ตฌํ˜„ํ•˜๊ธฐ def move(no: int, x: int, y: int) -> None: """์›๋ฐ˜ no๊ฐœ๋ฅผ x๊ธฐ๋‘ฅ์—์„œ y๊ธฐ๋‘ฅ์œผ๋กœ ์˜ฎ๊น€""" if no > 1: move(no - 1, x, 6..

Code/Algorithm 2022.12.09

[Algorithm] ์žฌ๊ท€ ์•Œ๊ณ ๋ฆฌ์ฆ˜_2

05-2 ์žฌ๊ท€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ถ„์„ ์žฌ๊ท€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ 2๊ฐ€์ง€ ๋ถ„์„ ๋ฐฉ๋ฒ• ์‹ค์Šต 5-3 ์ˆœ์ˆ˜ํ•œ ์žฌ๊ท€ ํ•จ์ˆ˜ ๊ตฌํ˜„ํ•˜๊ธฐ # ์ˆœ์ˆ˜ํ•œ ์žฌ๊ท€ ํ•จ์ˆ˜ ๊ตฌํ˜„ํ•˜๊ธฐ # ์ˆœ์ˆ˜ํ•œ(genuinely) ์žฌ์‰ฌ -> ์žฌ๊ท€ ํ˜ธ์ถœ์„ ์—ฌ๋Ÿฌ ๋ฒˆ ์‹คํ–‰ํ•˜๋Š” ํ•จ์ˆ˜ def recur(n: int) -> int: """์ˆœ์ˆ˜ํ•œ ์žฌ๊ท€ ํ•จ์ˆ˜ recur์˜ ๊ตฌํ˜„""" if n > 0: recur(n - 1) print(n) recur(n - 2) x = int(input('์ •์ˆซ๊ฐ’์„ ์ž…๋ ฅํ•˜์„ธ์š”.: ')) recur(x) ์ •์ˆซ๊ฐ’์„ ์ž…๋ ฅํ•˜์„ธ์š”.: 4 1 2 3 1 4 1 2 recur() ํ•จ์ˆ˜๋Š” ํ•จ์ˆ˜ ์•ˆ์—์„œ ์žฌ๊ท€ ํ˜ธ์ถœ์„ 2๋ฒˆ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด์ฒ˜๋Ÿผ ์žฌ๊ท€ ํ˜ธ์ถœ์„ ์—ฌ๋Ÿฌ ๋ฒˆ ์‹คํ–‰ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์ˆœ์ˆ˜ํ•œ(genuinely) ์žฌ๊ท€๋ผ๊ณ  ํ•˜๋Š”๋ฐ ์‹ค์ œ ๋™์ž‘์€ ๋ณต์žกํ•ฉ๋‹ˆ๋‹ค. ์‹คํ–‰ ๊ฒฐ๊ณผ์ฒ˜๋Ÿผ ๋งค๊ฐœ๋ณ€์ˆ˜ n์—..

Code/Algorithm 2022.12.09

[Algorithm] ์žฌ๊ท€ ์•Œ๊ณ ๋ฆฌ์ฆ˜_1

05-1 ์žฌ๊ท€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ธฐ๋ณธ ์žฌ๊ท€ ์•Œ์•„๋ณด๊ธฐ ์žฌ๊ท€(recursion): ์–ด๋– ํ•œ ์ด๋ฒคํŠธ์—์„œ ์ž๊ธฐ ์ž์‹ ์„ ํฌํ•จํ•˜๊ณ  ๋‹ค์‹œ ์ž๊ธฐ ์ž์‹ ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ •์˜๋˜๋Š” ๊ฒฝ์šฐ ์žฌ๊ท€์˜ ์˜ˆ: ์ž์—ฐ์ˆ˜์˜ ์ •์˜ 1์€ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค. ์–ด๋–ค ์ž์—ฐ์ˆ˜์˜ ๋ฐ”๋กœ ๋‹ค์Œ ์ˆ˜๋„ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค. ํŒฉํ† ๋ฆฌ์–ผ ์•Œ์•„๋ณด๊ธฐ ํŒฉํ† ๋ฆฌ์–ผ(factorial): ์–‘์˜ ์ •์ˆ˜๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ๊ณฑํ•œ๋‹ค๋Š” ์˜๋ฏธ๋กœ ์ˆœ์ฐจ ๊ณฑ์…ˆ์ด๋ผ๊ณ ๋„ ํ•ฉ๋‹ˆ๋‹ค. ์žฌ๊ท€๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€ํ‘œ์ ์ธ ์˜ˆ์ž…๋‹ˆ๋‹ค. ์–‘์˜ ์ •์ˆ˜ n์˜ ํŒจํ† ๋ฆฌ์–ผ(n!)์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜๋ฅผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŒฉํ† ๋ฆฌ์–ผ n!์˜ ์ •์˜(n์€ ์–‘์˜ ์ •์ˆ˜) 0! = 1 n > 0์ด๋ฉด n! = n x (n - 1)! ์‹ค์Šต 5-1 ์–‘์˜ ์ •์ˆ˜ n์˜ ํŒฉํ† ๋ฆฌ์–ผ ๊ตฌํ•˜๊ธฐ # ์–‘์˜ ์ •์ˆ˜ n์˜ ํŒฉํ† ๋ฆฌ์–ผ ๊ตฌํ•˜๊ธฐ def factorial(n: int) -> int: """์–‘์˜ ์ •์ˆ˜ ..

Code/Algorithm 2022.12.06
728x90