๐Ÿ“– Coding Study/Python

ํŒŒ์ด์ฌ ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ for Beginner 8์žฅ ์—ฐ์Šต๋ฌธ์ œ ์ •๋‹ต

๊ณต๋ถ€๋ชปํ•จ 2023. 11. 21. 19:46

8์žฅ ์ด์ง„ ํŠธ๋ฆฌ ์—ฐ์Šต๋ฌธ์ œ ์ •๋‹ต

 

1. ํŠธ๋ฆฌ์— ๋Œ€ํ•œ ์„ค๋ช… 1~4์— ์•Œ๋งž์€ ์šฉ์–ด๋ฅผ ๋‹ค์Œ ์ค‘์—์„œ ๊ณ ๋ฅด์‹œ์˜ค.

ํŠธ๋ฆฌ์˜ ๋งจ ์œ„๋ฅผ '1'๋ผ๊ณ  ํ•œ๋‹ค. '1'๋ฅผ '2'0์œผ๋กœ ๋‘๊ณ  ๋‚˜๋ญ‡์žŽ์— ํ•ด๋‹นํ•˜๋Š” ์•„๋ž˜๋กœ ๋‚ด๋ ค์˜ฌ์ˆ˜๋ก '2'์ด 1์”ฉ ์ฆ๊ฐ€ํ•œ๋‹ค. ํŠธ๋ฆฌ์—์„œ ๊ฐ ์œ„์น˜๋ฅผ '3'๋ผ๊ณ  ํ•œ๋‹ค. ๊ฐ '3'๋Š” '4'๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋‹ค.
  • '1' = ๋ฃจํŠธ
  • '2' = ๋ ˆ๋ฒจ
  • '3' = ๋…ธ๋“œ
  • '4' = ์—์ง€

 

2. ์ด์ง„ ํŠธ๋ฆฌ๋ฅผ ๋ชจ๋‘ ๊ณ ๋ฅด์‹œ์˜ค.

  • ์ •๋‹ต : 1, 2, 3, 4

 

3. ๋‹ค์Œ ์ค‘ 1~3 ์„ค๋ช…์— ํ•ด๋‹นํ•˜๋Š” ๊ฒƒ์„ ๊ณ ๋ฅด์‹œ์˜ค.

  • 1 ๋ชจ๋“  ๋…ธ๋“œ๊ฐ€ ์˜ค๋ฅธ์ชฝ์ด๋‚˜ ์™ผ์ชฝ์œผ๋กœ ์—ฐ๊ฒฐ๋œ ํŠธ๋ฆฌ๋‹ค. -> ํŽธํ–ฅ ์ด์ง„ ํŠธ๋ฆฌ
  • 2 ๋ชจ๋“  ๋…ธ๋“œ๊ฐ€ ๊ฝ‰ ์ฐจ ์žˆ๋Š” ์ƒํƒœ์˜ ํŠธ๋ฆฌ๋‹ค. -> ํฌํ™” ์ด์ง„ ํŠธ๋ฆฌ
  • 3 ๋ฒˆํ˜ธ ๋ถ€์—ฌ ์ˆœ์„œ๋กœ ๋…ธ๋“œ๊ฐ€ ๋ฐฐ์น˜๋œ๋‹ค. ๋…ธ๋“œ๊ฐ€ ์ผ๋ถ€ ๋น„์–ด ์žˆ์–ด๋„ ๋œ๋‹ค. -> ์™„์ „ ์ด์ง„ ํŠธ๋ฆฌ

 

4. ์ด์ง„ ํŠธ๋ฆฌ์˜ ๋…ธ๋“œ ๊ตฌ์กฐ์— ๋Œ€ํ•œ ์„ค๋ช… ์ค‘ ๊ฐ€์žฅ ๊ฑฐ๋ฆฌ๊ฐ€ ๋จผ ๊ฒƒ์€?

1. ๋ฐ์ดํ„ฐ์™€ ๋งํฌ 2๊ฐœ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค.
2. ๋งํฌ๋Š” ์™ผ์ชฝ ๋งํฌ์™€ ์˜ค๋ฅธ์ชฝ ๋งํฌ ๋‘ ๊ฐ€์ง€๋‹ค.
3. ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋งํฌ๋ฅผ 3๊ฐœ ์ด์ƒ ๊ตฌ์„ฑํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
4. ๋ณดํ†ต ์™ผ์ชฝ ๋งํฌ, ๋ฐ์ดํ„ฐ, ์˜ค๋ฅธ์ชฝ ๋งํฌ์˜ ์ˆœ์„œ๋กœ ๊ตฌ์„ฑํ•œ๋‹ค.
  • ์ •๋‹ต : 3

 

5. ์ด์ง„ ํŠธ๋ฆฌ์˜ ์ˆœํšŒ๋Š” ์ „์œ„, ์ค‘์œ„, ํ›„์œ„ ์„ธ ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ๋‹ค์Œ์€ ์–ด๋–ค ์ˆœํšŒ์— ๋Œ€ํ•œ ์„ค๋ช…์ธ๊ฐ€?

1. ์™ผ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ๋กœ ์ด๋™
2. ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ๋กœ ์ด๋™
3. ํ˜„์žฌ ๋…ธ๋“œ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ
  • ์ •๋‹ต : ํ›„์œ„ ์ˆœํšŒ

 

 

6. ๋‹ค์Œ ์ด์ง„ ํŠธ๋ฆฌ๋ฅผ ์ „์œ„ ์ˆœํšŒ, ์ค‘์œ„ ์ˆœํšŒ, ํ›„์œ„ ์ˆœํšŒํ•œ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ๊ฐ ์“ฐ์‹œ์˜ค

  • ์ „์œ„ ์ˆœํšŒ : ํ™”์‚ฌ -> ์†”๋ผ -> ํœ˜์ธ -> ์ฏ”์œ„ -> ๋ฌธ๋ณ„ -> ์„ ๋ฏธ
  • ์ค‘์œ„ ์ˆœํšŒ : ํœ˜์ธ -> ์†”๋ผ -> ์ฏ”์œ„ -> ํ™”์‚ฌ -> ์„ ๋ฏธ -> ๋ฌธ๋ณ„
  • ํ›„์œ„ ์ˆœํšŒ : ํœ˜์ธ -> ์ฏ”์œ„ -> ์†”๋ผ -> ์„ ๋ฏธ -> ๋ฌธ๋ณ„ -> ํ™”์‚ฌ

 

 

7. ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ์˜ ํŠน์ง•๊ณผ ๊ฐ€์žฅ ๊ฑฐ๋ฆฌ๊ฐ€ ๋จผ ๊ฒƒ์€?

1. ์™ผ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ๋Š” ๋ฃจํŠธ ๋…ธ๋“œ๋ณด๋‹ค ๋ชจ๋‘ ์ž‘์€ ๊ฐ’์„ ๊ฐ€์ง„๋‹ค.
2. ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ๋Š” ๋ฃจํŠธ ๋…ธ๋“œ๋ณด๋‹ค ๋ชจ๋‘ ์ž‘์€ ๊ฐ’์„ ๊ฐ€์ง„๋‹ค.
3. ๊ฐ ์„œ๋ธŒ ํŠธ๋ฆฌ๋„ 1, 2์˜ ํŠน์ง•์„ ๊ฐ–๋Š”๋‹ค.
4. ๋ชจ๋“  ๋…ธ๋“œ ๊ฐ’์€ ํ•„์š”ํ•˜๋‹ค๋ฉด ์ค‘๋ณต๋  ์ˆ˜๋„ ์žˆ๋‹ค.
  • ์ •๋‹ต : 2, 3, 4

 

 

8. ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ์˜ ์‚ญ์ œ ๋™์ž‘ ์ค‘์—์„œ ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๋Š”?

1. ๋ฆฌํ”„ ๋…ธ๋“œ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ฒฝ์šฐ
2. ์ž์‹ ๋…ธ๋“œ๊ฐ€ ํ•˜๋‚˜(์™ผ์ชฝ)์ธ ๋…ธ๋“œ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ฒฝ์šฐ
3. ์ž์‹ ๋…ธ๋“œ๊ฐ€ ํ•˜๋‚˜(์˜ค๋ฅธ์ชฝ)์ธ ๋…ธ๋“œ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ฒฝ์šฐ
4. ์ž์‹ ๋…ธ๋“œ๊ฐ€ ๋‘˜ ์žˆ๋Š” ๋…ธ๋“œ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ฒฝ์šฐ
  • ์ •๋‹ต : 4

 

9. ๋‹ค์Œ์€ ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ์—์„œ ๋ฐ˜๋ณต์ ์œผ๋กœ ์ž๋ฆฌ๋ฅผ ์ฐพ์•„๊ฐ€๋Š” ์ฝ”๋“œ๋‹ค. 1~3์— ์ ํ•ฉํ•œ ์ฝ”๋“œ๋ฅผ ๋‹ค์Œ์—์„œ ๊ณ ๋ฅด์‹œ์˜ค.

name = 6
node = TreeNode()
node.data = name

current = root
while True:
	if ๋นˆ์นธ1 :
    	if current.left == None :
        	current.left = node
            break
    	๋นˆ์นธ2
    else :
    	if current.right == None :
        	current.right = node
            break
        ๋นˆ์นธ3
  • ์ •๋‹ต : ๋นˆ์นธ1 = name < current.data
  • ๋นˆ์นธ2 = current = current.left
  • ๋นˆ์นธ3 = current = current.right

 

10. ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ์˜ ์‚ฝ์ž… ์ž‘ํ†ต ์ฝ”๋“œ์˜ ์ผ๋ถ€๋‹ค. ๋นˆ์นธ1์— ์•Œ๋งž์€ ์ฝ”๋“œ๋Š”?

node = TreeNode()
node.data = nameAry[0]
root = node
memory.append(node)

for name in ๋นˆ์นธ1 :
	node = TreeNode()
    	node.data = name
    ์ƒ๋žต...
  • ์ •๋‹ต : nameAry[1:]

 

 

 

 

 


https://www.hanbit.co.kr/store/books/look.php?p_code=B4186876690

 

IT CookBook, ํŒŒ์ด์ฌ ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ for Beginner

๊ธฐ๋ณธ ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‰ฝ๊ฒŒ ํ’€์–ด๋‚ธ ์ž…๋ฌธ์„œ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ → ๊ฐ„๋‹จ ๊ตฌํ˜„ → ์ผ๋ฐ˜ ๊ตฌํ˜„ → ์‘์šฉ ์ˆœ์œผ๋กœ ์ฒด๊ณ„์ ์œผ๋กœ ํ•™์Šตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

www.hanbit.co.kr

 

LIST