๐Ÿ“š ์Šคํ„ฐ๋””/ํŒŒ์ด์ฌ ์Šคํ„ฐ๋”” ๊ฐ•์˜์ž๋ฃŒ

[3ํŒ€/๊น€๊ทœ๋ฆฌ] 7์ฐจ์‹œ ํŒŒ์ด์ฌ ์Šคํ„ฐ๋”” - ์ž๋ฃŒ๊ตฌ์กฐ

kyuree 2023. 5. 10. 22:40

7แ„Žแ…กแ„‰แ…ต_แ„Œแ…กแ„…แ…ญแ„€แ…ฎแ„Œแ…ฉ_แ„€แ…ชแ„Œแ…ฆแ„ƒแ…กแ†ธแ„‹แ…กแ†ซ
0.06MB
7แ„Žแ…กแ„‰แ…ต_แ„Œแ…กแ„…แ…ญแ„€แ…ฎแ„Œแ…ฉ_แ„€แ…กแ†ผแ„‹แ…ดแ„‹แ…กแ†ซ.pdf
15.01MB
7แ„Žแ…กแ„‰แ…ต_แ„Œแ…กแ„…แ…ญแ„€แ…ฎแ„Œแ…ฉ_แ„€แ…ชแ„Œแ…ฆ.pdf
3.22MB

*๋ชจ๋“  ์ถœ์ฒ˜๋Š” ๋„์„œ "๋ฐ์ดํ„ฐ ๊ณผํ•™์„ ์œ„ํ•œ ํŒŒ์ด์ฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ"์ž…๋‹ˆ๋‹ค*

#1. ์ž๋ฃŒ๊ตฌ์กฐ์˜ ์ดํ•ด

์ž๋ฃŒ๊ตฌ์กฐ์˜ ๊ฐœ๋…


ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜๋‹ค ๋ณด๋ฉด ๋‹ค์–‘ํ•œ ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜์—ฌ ์ฒ˜๋ฆฌํ•  ๋•Œ๊ฐ€ ์žˆ์Œ

  • ์ „ํ™”๋ฒˆํ˜ธ๋ถ€ → ํšจ์œจ์ ์œผ๋กœ ์ •๋ณด๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด ์ด๋ฆ„์„ ๊ฐ€๋‚˜๋‹ค์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜์—ฌ ์ €์žฅ

์ด์ฒ˜๋Ÿผ ๋ฐ์ดํ„ฐ์˜ ํŠน์ง•์„ ๊ณ ๋ คํ•˜์—ฌ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ž๋ฃŒ๊ตฌ์กฐ(data structure)๋ผ๊ณ  ํ•จ!

  • ๋˜ ๋‹ค๋ฅธ ์˜ˆ์‹œ
    • ํƒ๋ฐฐ ์ˆ˜ํ™”๋ฌผ์„ ํŠธ๋Ÿญ์— ์‹ค์„ ๋•Œ, ๋‚˜์ค‘์— ๋ฐฐ๋‹ฌํ•  ๊ฒƒ์€ ์•ˆ์ชฝ์— ๋จผ์ € ๋ฐฐ๋‹ฌํ•  ๊ฒƒ์€ ํŠธ๋Ÿญ ์ž…๊ตฌ์ชฝ์— ์Œ“๋Š” ๊ฒƒ

<aside> ๐ŸŒŸ ํŠน์ง•์ด ์žˆ๋Š” ์ •๋ณด๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ํšจ์œจ์ ์œผ๋กœ ์ €์žฅ ๋ฐ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ์‹

</aside>

ํŠนํžˆ ๋Œ€์šฉ๋Ÿ‰์ผ์ˆ˜๋ก ํšจ์œจ์„ฑ์ด ๋”์šฑ ๊ฐ•์กฐ๋˜์–ด ์•Œ๋งž์€ ์ž๋ฃŒ๊ตฌ์กฐ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”!

ํŒŒ์ด์ฌ์—์„œ์˜ ์ž๋ฃŒ๊ตฌ์กฐ


  • ์ž๋ฃŒ๊ตฌ์กฐ์˜ ๊ธฐ๋ณธ์ €์žฅ ๋ฐฉ์‹ ⇒ ๋ฆฌ์ŠคํŠธ
  • ํŒŒ์ด์ฌ์—์„œ ์ œ๊ณตํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ

#2. ์Šคํƒ๊ณผ ํ

์Šคํƒ(stack)


  • ๊ฐ€์žฅ ์ฒ˜์Œ ๋ฐฐ์šฐ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ, ํ•ต์‹ฌ ๊ฐœ๋… ์ค‘ ํ•˜๋‚˜
  • “Last In First Out”
    • ๋งˆ์ง€๋ง‰์— ๋“ค์–ด๊ฐ„ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฐ€์žฅ ๋จผ์ € ๋‚˜์˜ค๋Š” ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ์˜ ์ €์žฅ ๊ณต๊ฐ„์„ ๊ตฌํ˜„

  • ์ผ๋ฐ˜์ ์œผ๋กœ ์Šคํƒ = ์‚ฌ๊ฐํ˜•์˜ ์ €์žฅ๊ณต๊ฐ„
    • ๋ฆฌ์ŠคํŠธ์™€ ๋น„์Šทํ•˜์ง€๋งŒ, ์ˆœ์„œ๊ฐ€ ๋ฐ”๋€Œ๋Š” ํ˜•ํƒœ
  • ๊ธฐ๋ณธ ๋ฌธ๋ฒ•
    • ํ‘ธ์‹œ(push) : ์Šคํƒ์— ๋ฐ์ดํ„ฐ ์ €์žฅํ•˜๋Š” ๊ฒƒ
    • ํŒ(pop) : ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•˜๋Š” ๊ฒƒ
  • ์–ธ์ œ ์‚ฌ์šฉ๋ ๊นŒ?
    • ํƒ๋ฐฐ ์ˆ˜ํ™”๋ฌผ์„ ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹
      • ์ˆ˜ํ™”๋ฌผ์ด ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ๋ผ๋ฉด, ๋จผ์ € ๋“ค์–ด๊ฐ„ ๊ฒƒ์ด ๋‚˜์ค‘์— ๋‚˜์ค‘์— ๋“ค์–ด๊ฐ„ ๊ฒƒ์ด ๊ฐ€์žฅ ๋จผ์ € ๋‚˜์˜จ๋‹ค
  • ์Šคํƒ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•
    • ๋ฆฌ์ŠคํŠธ ์‚ฌ์šฉ
      • ๋ฆฌ์ŠคํŠธ๋กœ ์ €์žฅ ๊ณต๊ฐ„ ์ƒ์„ฑ → **append()**๋กœ ๋ฐ์ดํ„ฐ ์ €์žฅ(push), **pop()**์œผ๋กœ ๋ฐ์ดํ„ฐ ์ถ”์ถœ(pop)
    • ์ฝ”๋“œ
    a = [1, 2, 3, 4, 5] 
    
    a.append(10)
    a       #[1, 2, 3, 4, 5, 10]
    
    a.append(20)
    a      #[1, 2, 3, 4, 5, 10, 20]
    
    a.pop() #20
    a.pop() #10
    
    → ๊ฐ€์žฅ ์ตœ๊ทผ์— ์ถ”๊ฐ€ํ•œ ๊ฐ’๋ถ€ํ„ฐ ์ถ”์ถœ๋˜๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค
  • ์Šคํƒ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ
    • ์ด์ง„์ˆ˜ ๋ณ€ํ™˜๊ธฐ
      • ์‹ญ์ง„์ˆ˜๋ฅผ ์ด์ง„์ˆ˜๋กœ ๋ณ€ํ™˜
      • ์ƒ์„ธ ์„ค๋ช…
        • 2๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€ ๊ฐ’์„ ์Šคํƒ์— ํ‘ธ์‹œ → ๋งˆ์ง€๋ง‰์œผ๋กœ ๋“ค์–ด์˜จ ๊ฐ’๋ถ€ํ„ฐ ํŒ์œผ๋กœ ์ถ”์ถœํ•˜๊ณ  ์ถœ๋ ฅ
    • ํ…์ŠคํŠธ ์—ญ์ˆœ์œผ๋กœ ์ถ”์ถœํ•˜๊ธฐ
      • ์ฝ”๋“œ
      word = input("Input a word: ")
      
      world_list =list(word)
      print(world_list)
      
      result=[]
      
      for _ in range(len1(world_list)):
      		result.append(world_list.pop())
      
      print(result)
      print(word[::-1])
      
      • ์‹คํ–‰ํ™”๋ฉด

 

→ ‘_’ ๊ธฐํ˜ธ : ์ผ๋ฐ˜์ ์œผ๋กœ for๋ฌธ์—์„œ ์ž์ฃผ ์‚ฌ์šฉ / ํ•ด๋‹น ๋ฐ˜๋ณต๋ฌธ์—์„œ ์ƒ์„ฑ๋˜๋Š” ๊ฐ’์€ ์ฝ”๋“œ์—์„œ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๋œป

ํ


  • ์Šคํƒ์˜ ๋ฐ˜๋Œ€ ๊ฐœ๋…
  • “First In First Out”
    • ๋จผ์ € ๋“ค์–ด๊ฐ„ ๋ฐ์ดํ„ฐ๊ฐ€ ๋จผ์ € ๋‚˜์˜ด

  • ์–ธ์ œ ์‚ฌ์šฉ๋ ๊นŒ?
    • ์€ํ–‰์—์„œ ๋Œ€๊ธฐ ๋ฒˆํ˜ธํ‘œ ๋ฝ‘์„ ๋•Œ
      • ๋จผ์ € ์˜จ ์‚ฌ๋žŒ์ด ์•ž์˜ ๋ฒˆํ˜ธํ‘œ ๋ฝ‘๊ณ  ๋จผ์ € ์„œ๋น„์Šค ๋ฐ›๋Š” ๊ตฌ์กฐ
  • ๋ฉ”๋ชจ๋ฆฌ ๊ด€์ 
    • ์Šคํƒ → ๋ฉ”๋ชจ๋ฆฌ ์‹œ์ž‘ํ•˜๋Š” ์ง€์  ๊ณ ์ •๋ผ์žˆ์Œ
    • but, ํ → ์ฒ˜์Œ์— ๊ฐ’์ด ์ €์žฅ๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๊ฐ€ ๊ฐ’์ด ์‚ฌ์šฉ๋จ์— ๋”ฐ๋ผ ๊ณ„์† ๋ฐ”๋€œ
  • ํ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•
    • ๊ธฐ๋ณธ์ ์œผ๋กœ ์Šคํƒ์˜ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•๊ณผ ๋™์ผ
    • pop() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ธ๋ฑ์Šค๊ฐ€ 0๋ฒˆ์งธ์ธ ๊ฐ’์„ ์“ด๋‹ค๋Š” ์˜๋ฏธ
      • pop(0)์„ ์‚ฌ์šฉ
      • ⇒ pop() ํ•จ์ˆ˜๊ฐ€ ๋ฆฌ์ŠคํŠธ์˜ ๋งˆ์ง€๋ง‰ ๊ฐ’์„ ๊ฐ€์ ธ์˜จ๋‹ค๊ณ  ํ–ˆ์„ ๋•Œ pop(0)์€ ๋งจ ์ฒ˜์Œ ๊ฐ’์„ ๊ฐ€์ ธ์˜จ๋‹ค๋Š” ๋œป

#3. ํŠœํ”Œ๊ณผ ์„ธํŠธ

ํŠœํ”Œ


๋ฆฌ์ŠคํŠธ์™€ ๊ฐ™์€ ๊ฐœ๋…์ด์ง€๋งŒ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ๋ฆฌ์ŠคํŠธ

  • ์„ ์–ธ๊ณผ ์‚ฌ์šฉ์ด ๋ฆฌ์ŠคํŠธ์™€ ์•ฝ๊ฐ„ ๋‹ค๋ฆ„
  • ์ฝ”๋“œ

 

  • #1
    • ํŠœํ”Œ์„ ์„ ์–ธํ•˜๋Š” ๋ช…๋ น
    • ๊ด„ํ˜ธ๋ฅผ ์ด์šฉํ•˜์—ฌ *t = (1, 2, 3)*๊ณผ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ์„ ์–ธ
      • ๋Œ€๊ด„ํ˜ธ[ ]๋ฅผ ์ด์šฉํ•˜๋Š” ๋ฆฌ์ŠคํŠธ์™€ ์ฐจ์ด์ 
      • ํ•˜์ง€๋งŒ ์„ ์–ธ ์™ธ์— ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์—ฐ์‚ฐ์€ ๋ฆฌ์ŠคํŠธ์™€ ๊ฐ™์€ ๋ฐฉ์‹
      ⇒ ๋ฆฌ์ŠคํŠธ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์—ฐ์‚ฐ, ์ธ๋ฑ์‹ฑ, ์Šฌ๋ผ์ด์‹ฑ์ด ๋ชจ๋‘ ๋™์ผํ•˜๊ฒŒ ์ ์šฉ๋จ
      • ์œ„์˜ ์ฝ”๋“œ์ฒ˜๋Ÿผ ํŠœํ”Œ ๊ฐ„์˜ ๋ง์…ˆ , ๊ณฑ์…ˆ , len() ํ•จ์ˆ˜์™€ ๊ฐ™์ด→ ๋ฆฌ์ŠคํŠธํ˜• ๋ฐ์ดํ„ฐ์— ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ํ•จ์ˆ˜ ์‚ฌ์šฉ๊ฐ€๋Šฅ
      • ํฐ ์ฐจ์ด์ ์ด ์žˆ๋‹ค๋ฉด, ํŠœํ”Œ์˜ ๊ฐ’์€ ๋งˆ์Œ๋Œ€๋กœ ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€!
      • ๋งŒ์•ฝ ํŠœํ”Œ์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๊ณ ์ž ํ•œ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒ

  • ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€
    • ‘ํŠœํ”Œ ์˜ค๋ธŒ์ ํŠธ(‘tuple’ object)์—๋Š” ์ƒˆ๋กœ์šด ์•„์ดํ…œ(item)์˜ ํ• ๋‹น์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.’
    • ํŠœํ”Œ์˜ ๊ฐ€์žฅ ํฐ ํŠน์ง•
    • ๋งŒ์•ฝ ๊ฐ’์ด ํ•˜๋‚˜๋ฐ–์— ์—†๋‹ค๋ฉด ํŠœํ”Œ์€ ์–ด๋–ป๊ฒŒ ์„ ์–ธํ•  ์ˆ˜ ์žˆ์„๊นŒ?
      • t = (1, )์™€ ๊ฐ™์ด ๋ฐ˜๋“œ์‹œ ์ฝค๋งˆ(,)๋ฅผ ๋ถ™์—ฌ t๊ฐ€ ํŠœํ”Œ์ž„์„ ์„ ์–ธ
  • ์ด๋ ‡๊ฒŒ ๊ฐ’์„ ๋ฐ”๊ฟ€ ์ˆ˜๋„ ์—†๋Š” ํŠœํ”Œ์€ ์–ธ์ œ ์‚ฌ์šฉํ• ๊นŒ?
    • ์‚ฌ์‹ค ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜๋‹ค ๋ณด๋ฉด ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ ๊ณผ ํ•จ๊ป˜ ์ž‘์—…ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Œ
    • ์ž์‹ ์ด ํ•˜๋‚˜์˜ ํ•จ์ˆ˜๋งŒ ๋งŒ๋“ค๊ณ , ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ๊ทธ ํ•จ์ˆ˜์˜ ๊ฒฐ๊ณผ๊ฐ’์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๋„ ๋ฐœ์ƒ
    • ์ด๋•Œ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋Š” ํƒ€์ž…์„ ํŠœํ”Œ๋กœ ์„ ์–ธ→ ์ดํ›„ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ์ด ๋งˆ์Œ๋Œ€๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”๊พธ์ง€ ๋ชปํ•˜๊ฒŒ ๋จ
  • ๊ทธ๋ ‡๋‹ค๋ฉด ๋ฐ”๋€Œ๋ฉด ์•ˆ ๋˜๋Š” ๋ฐ์ดํ„ฐ์—๋Š” ์–ด๋–ค ๊ฒƒ์ด ์žˆ์„๊นŒ?
    • ํ•™๋ฒˆ์ด๋‚˜ ์ด๋ฆ„, ์ฃผ๋ฏผ๋“ฑ๋ก๋ฒˆํ˜ธ์™€ ๊ฐ™์ด ๋ณ€๊ฒฝ๋˜๋ฉด ์•ˆ ๋˜๋Š” ์ •๋ณด
    • ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์ด๋Ÿฌํ•œ ์ดํ•ด ์—†์ด ๋งˆ์Œ๋Œ€๋กœ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋ ค๊ณ  ํ•  ๋•Œ ํŠœํ”Œ์€ ์ด๋ฅผ ๋ฐฉ์ง€ํ•ด์ฃผ๋Š” ์—ญํ• 

์„ธํŠธ


์ˆœ์„œ ์—†์ด ์ €์žฅํ•˜๋˜ ์ค‘๋ณต์„ ๋ถˆํ—ˆํ•˜๋Š” ์ž๋ฃŒํ˜•, ์ˆ˜ํ•™์˜ ์ง‘ํ•ฉ๊ณผ ์•„์ฃผ ๋น„์Šท

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

  • ์„ธํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด set() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉ → ๋ฆฌ์ŠคํŠธ๋‚˜ ํŠœํ”Œ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์œผ๋ฉด ํ•ด๋‹น ๊ฐ’์ด ์„ธํŠธ ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜๋จ
  • ์œ„ ์ฝ”๋“œ์ฒ˜๋Ÿผ [1, 2, 3, 1, 2, 3]์ด๋ผ๋Š” ๋ฆฌ์ŠคํŠธํ˜•์˜ ๊ฐ’์„ ์„ธํŠธ๋กœ ๋ณ€ํ™˜ → ์ค‘๋ณต์„ ์ œ๊ฑฐํ•œ ํ›„ {1, 2, 3}์œผ๋กœ ๋ณ€ํ™˜๋˜์–ด ์ถœ๋ ฅ
  • ํŠœํ”Œ๊ณผ ๋‹ค๋ฅด๊ฒŒ ์‚ญ์ œ๋‚˜ ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅ, ์ด ๊ธฐ๋Šฅ์„ ์ด์šฉ → ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‹ค์–‘ํ•œ ํ•จ์ˆ˜๋ฅผ ์ง€์›

  • ์ง€์›ํ•˜๋Š” ํ•จ์ˆ˜
    • add() → ์›์†Œ ํ•˜๋‚˜๋ฅผ ์ถ”๊ฐ€
    • remove() & discard() → ์›์†Œ ํ•˜๋‚˜ ์ œ๊ฑฐ
    • update() → ์ƒˆ๋กœ์šด ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ทธ๋Œ€๋กœ ์ถ”๊ฐ€
    • clear() → ๋ชจ๋“  ๋ณ€์ˆ˜๋ฅผ ์ง€์›€
  • ๊ฐ’์€ ๋ชจ๋‘ ์ˆœ์„œ ์—†์ด ์ €์žฅ & ์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜๊ณ  ์ €์žฅ
  • ํŒŒ์ด์ฌ์˜ ์„ธํŠธ๋Š” ์ˆ˜ํ•™์˜ ์ง‘ํ•ฉ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋‹ค์–‘ํ•œ ์ง‘ํ•ฉ ์—ฐ์‚ฐ์„ ์ œ๊ณต
  • ์ง‘ํ•ฉ ์—ฐ์‚ฐ์—๋Š” ๊ทธ๋ฆผ์ฒ˜๋Ÿผ ๊ต์ง‘ํ•ฉ, ํ•ฉ์ง‘ํ•ฉ, ์ฐจ์ง‘ํ•ฉ์ด ์žˆ์Œ

  • ํŒŒ์ด์ฌ์—์„œ๋Š” ์ด ์„ธ ๊ฐ€์ง€ ์ง‘ํ•ฉ ์—ฐ์‚ฐ์„ ๋ชจ๋‘ ์ง€์›

  • ํ•ฉ์ง‘ํ•ฉ
    • ๋‘ ์ง‘ํ•ฉ์˜ ์ค‘๋ณต๊ฐ’์„ ์ œ๊ฑฐํ•˜๊ณ  ํ•ฉ์น˜๋Š” ์—ฐ์‚ฐ
    • **union()**๊ณผ ๊ฐ™์€ ํ•จ์ˆ˜๋กœ๋„ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, | ๊ธฐํ˜ธ๋กœ๋„ ์ถ”์ถœํ• ์ˆ˜ ์žˆ์Œ
    • ์œ„ ์ฝ”๋“œ์—์„œ s1 | s2์˜ ๊ฒฐ๊ณผ๊ฐ€ s1.union(s2)์™€ ๋™์ผ
  • ๊ต์ง‘ํ•ฉ
    • ๋‘ ์ง‘ํ•ฉ ์–‘์ชฝ์— ๋ชจ๋‘ ํฌํ•จ๋œ ๊ฐ’๋งŒ ์ถ”์ถœํ•˜๋Š” ์—ฐ์‚ฐ
    • ๊ต์ง‘ํ•ฉ์˜ ๊ฐœ๋…์€ if๋ฌธ์—์„œ ๋ฐฐ์› ๋˜ and ์กฐ๊ฑด์˜ ๊ฐœ๋…๊ณผ ๋น„์Šท
  • ์ฐจ์ง‘ํ•ฉ
    • ์•ž์— ์žˆ๋Š” ์ง‘ํ•ฉ s1์˜ ์›์†Œ ์ค‘ s2์— ํฌํ•จ๋œ ์›์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ์—ฐ์‚ฐ
    • ์ฆ‰, s1์—์„œ s1 ๊ณผ s2์˜ ๊ต์ง‘ํ•ฉ ์›์†Œ๋ฅผ ์‚ญ์ œํ•˜๋ฉด ๋จ
    • ์ด ์ฝ”๋“œ์—์„œ s1์€ [1, 2, 3, 4, 5]๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฏ€๋กœ [3, 4, 5]๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด [1, 2]๋งŒ ๋‚จ์Œ

#4. ๋”•์…”๋„ˆ๋ฆฌ

๋”•์…”๋„ˆ๋ฆฌ์˜ ๊ฐœ๋…


์˜์–ด์‚ฌ์ „์—์„œ ๊ฒ€์ƒ‰์„ ์œ„ํ•ด ์˜์–ด ๋‹จ์–ด๋“ค์„ ์ €์žฅํ•ด ๋†“์€ ๋ฐฉ์‹๊ณผ ๋น„์Šท

  • ์˜์–ด์‚ฌ์ „์—์„œ๋Š” ๊ฐ ๋‹จ์–ด๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ƒ‰์ธ index์„ ๋งŒ๋“ค์–ด ๋†“๊ณ  ์ƒ‰์ธ์„ ํ†ตํ•ด ๊ทธ ๋‹จ์–ด๋ฅผ ์ฐพ์•„ ์˜๋ฏธ๋ฅผ ํŒŒ์•…
    • ์ƒ‰์ธ
      • ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๊ธฐ ์‰ฝ๋„๋ก ๊ตฌ๋ถ„ํ•ด ๋†“์€ ์œ ์ผํ•œ ์ •๋ณด, ๋‹จ์–ด๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ฐฉ์‹
  • in ํŒŒ์ด์ฌ์˜ ๋”•์…”๋„ˆ๋ฆฌ ๊ตฌ์กฐ
    • ๋ฐ์ดํ„ฐ์˜ ์œ ์ผํ•œ ๊ตฌ๋ถ„์ž์ธ ํ‚ค key๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ๊ฒ€์ƒ‰
    • ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ’value ์ด๋ผ๋Š” ์ด๋ฆ„๊ณผ ์Œ์œผ๋กœ ์ €์žฅ → ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๋„๋ก ํ•จ
  • ํ‚ค์™€ ๊ฐ’์„ ์Œ์œผ๋กœ ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹ → ์‹ค์ƒํ™œ์—์„œ๋„ ๋งค์šฐ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ
    • ์˜ˆ๋ฅผ ๋“ค์–ด, ๊ฐœ์ธ์˜ ์ฃผ๋ฏผ๋“ฑ๋ก๋ฒˆํ˜ธ๋‚˜ ํ•™๊ต์˜ ํ•™๋ฒˆ. ์ œํ’ˆ ๋ฒˆํ˜ธ ๋“ฑ์€ ๋ชจ๋‘ ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ๋ถ„ํ•˜๋Š” ํ‚ค๋กœ ์ƒ ๊ฐํ•  ์ˆ˜ ์žˆ์Œ
    • [ํ‘œ 7-3]์˜ ๋Œ€ํ•™์ƒ ์ธ์ ์‚ฌํ•ญ์—์„œ ํ•™๋ฒˆ์ด ๋‚˜๋จธ์ง€ ์ •๋ณด๋ฅผ ๊ตฌ๋ถ„ํ•˜๋Š” ํ‚ค
      • ํ•™๋ฒˆ์„ ํ‚ค๋กœ ํ•˜์—ฌ ์ด๋ฆ„ • ์ƒ๋…„์›”์ผ ' ์ฃผ์†Œ๋ฅผ ๋ฆฌ์ŠคํŠธ ํ˜•ํƒœ๋กœ ์ €์žฅํ•œ ๋‹ค์Œ ํ•œ ๋ฒˆ์— ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋Š” ํ˜•ํƒœ๊ฐ€ ๋˜๋ฉด ํ•™๋ฒˆ์„ ์ด์šฉํ•ด ๋‹ค๋ฅธ ์ •๋ณด์— ์‰ฝ๊ฒŒ ์ ‘๊ทผ ๊ฐ€๋Šฅ

ํŒŒ์ด์ฌ์—์„œ์˜ ๋”•์…”๋„ˆ๋ฆฌ


  • ๋”•์…”๋„ˆ๋ฆฌ์˜ ์„ ์–ธ
    • ์ค‘๊ด„ํ˜ธ {}๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ‚ค์™€ ๊ฐ’์„ ์Œ์œผ๋กœ ๊ตฌ์„ฑํ•˜๋ฉด ๋จ

  • ์ค‘์š”
    • ๊ฐ’์—๋Š” ๋‹ค์–‘ํ•œ ์ž๋ฃŒํ˜•์ด ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ
  • ์ด๋ฆ„ → ๋ฌธ์ž์—ด์ด๋ฏ€๋กœ ์ผ๋ฐ˜์ ์ธ ๋ฌธ์ž์—ด๋กœ ์ €์žฅ
  • but, ๋ฆฌ์ŠคํŠธ์™€ ๊ฐ™์ด ํ•œ ๋ฒˆ์— ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•œ๋‹ค๊ฑฐ๋‚˜, ํŠœํ”Œ ๋˜๋Š” ์„ธํŠธ์™€ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ
    • ์‹ฌ์ง€์–ด ๋”•์…”๋„ˆ๋ฆฌ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  • [ํ‘œ 7-4]์˜ ์ •๋ณด๋ฅผ ๊ฐ„๋‹จํžˆ ํŒŒ์ด์ฌ์œผ๋กœ ํ‘œํ˜„

  • student_info ๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ ๋จผ์ € ์„ ์–ธ → ํ•ด๋‹น ๋ณ€์ˆ˜์— {ํ‚ค:๊ฐ’} ํ˜•ํƒœ๋กœ ๊ฐ’์„ ์ž…๋ ฅ
  • ํ•ด๋‹น ๋ณ€์ˆ˜๋Š” ๊ฐ„๋‹จํžˆ ์ €์žฅ๋จ
  • ํ•ด๋‹น ๋ณ€์ˆ˜์—์„œ ํŠน์ • ๊ฐ’ ํ˜ธ์ถœ→ ํ•ด๋‹น ๊ฐ’์˜ ํ‚ค๋ฅผ ๋Œ€๊ด„ํ˜ธ [ ] ์•ˆ์— ๋„ฃ์–ด ํ˜ธ์ถœํ•˜๋ฉด ๋จ
    • ํ‚ค๋Š” ๋ฌธ์ž์—ด๋กœ ์„ ์–ธํ•  ์ˆ˜๋„ ์žˆ๊ณ , ์ •์ˆ˜ํ˜•์œผ๋กœ ์„ ์–ธํ•  ์ˆ˜๋„ ์žˆ์Œ
    • ์—ฌ๊ธฐ์„œ๋Š” ์ •์ˆ˜ํ˜•์œผ๋กœ ์„ ์–ธํ–ˆ์œผ๋ฏ€๋กœ ์ •์ˆ˜ํ˜•์œผ๋กœ ํ˜ธ์ถœ

  • ์žฌํ• ๋‹น & ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€

 

 

  • ๋”•์…”๋„ˆ๋ฆฌ์—์„œ์˜ ์žฌํ• ๋‹น๋„ ๋ฆฌ์ŠคํŠธ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹๊ณผ ๋‹ค๋ฅด์ง€ ์•Š์Œ
    • ํ‚ค๋ฅผ ์ด์šฉ → ํ•ด๋‹น ๋ณ€์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ ํ›„ ์ƒˆ๋กœ์šด ๊ฐ’์„ ํ• ๋‹น
    • ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ → ์ƒˆ๋กœ์šด ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ’์„ ํ• ๋‹น
    • ํ• ๋‹น ์‹œ ์‚ฌ์šฉ๋˜๋Š” ํ‚ค๊ฐ€ ๊ธฐ์กด์— ์žˆ๋˜ ํ‚ค๋ผ๋ฉด ํ•ด๋‹น ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜๊ณ , ๊ธฐ์กด์— ์—†๋˜ ํ‚ค๋ผ๋ฉด ์ƒˆ๋กœ์šด ๊ฐ’์œผ๋กœ ์ถ”๊ฐ€๋จ

๋”•์…”๋„ˆ๋ฆฌ ํ•จ์ˆ˜


ํŒŒ์ด์ฌ → ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋‹ค์–‘ํ•œ ํ•จ์ˆ˜๋ฅผ ์ œ๊ณต

  • ํŠนํžˆ for๋ฌธ์ด๋‚˜ if ๋ฌธ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค์–‘ํ•œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑ๊ฐ€๋Šฅ
  • ์˜ˆ) ๊ตญ๊ฐ€๋ช…๊ณผ ๊ตญ๊ฐ€ ์ „ํ™”๋ฒˆํ˜ธ๋ฅผ ๋ฌถ์–ด ๋ณด์—ฌ์ฃผ๋Š” ์ฝ”๋“œ

  • keys() ; ๋”•์…”๋„ˆ๋ฆฌ ๋ณ€์ˆ˜ ์•ˆ์˜ ํ‚ค์™€ ๊ฐ’์„ ์ถœ๋ ฅํ•˜๋Š” ํ•จ์ˆ˜
    • ๋จผ์ € ํ‚ค๋งŒ ์ถœ๋ ฅํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” keys() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉ
    • ์ด ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ‚ค๊ฐ€ ๋ฆฌ์ŠคํŠธ ํ˜•ํƒœ๋กœ ์ถœ๋ ฅ๋จ

#5. collections ๋ชจ๋“ˆ

deque ๋ชจ๋“ˆ


ํŒŒ์ด์ฌ์˜ ๋‚ด์žฅ ์ž๋ฃŒ๊ตฌ์กฐ

  • built-in data structure ๋ชจ๋“ˆ์ธ Collections
  • collections ๋ชจ๋“ˆ → ์ด๋ฏธ ์•ž์—์„œ ๋ฐฐ์šด ๋‹ค์–‘ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ์ธ ๋ฆฌ์ŠคํŠธ, ํŠœํ”Œ, ๋”•์…”๋„ˆ๋ฆฌ ๋“ฑ์„ ํ™•์žฅํ•˜์—ฌ ์ œ์ž‘๋œ ํŒŒ์ด์ฌ์˜ ๋‚ด์žฅ ๋ชจ๋“ˆ
  • ๊ธฐ์กด์— ๋ฐฐ์› ๋˜ ์ž๋ฃŒ๊ตฌ์กฐ๋ณด๋‹ค ํšจ์œจ์ ์ด๊ณ  ํŽธ๋ฆฌ

deque?

์Šคํƒ๊ณผ ํ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ํ˜ผํ•ฉํ•œ ์ž๋ฃŒ๊ตฌ์กฐ๋กœ์„œ, ์–‘์ชฝ ๋์—์„œ ์‚ฝ์ž…๊ณผ ์‚ญ์ œ๋ฅผ ํ—ˆ์šฉํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค

  • collections ๋ชจ๋“ˆ์˜ ์ œ๊ณต
    • deque, OrderedDict, defaultdict, Counter, namedtuple ๋“ฑ์„ ์ œ๊ณต
  • ๊ฐ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ์ฝ”๋“œ

  • deque์—์„œ ํ๋Š” ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„๊นŒ?
    • pop(0)์„ ์ž…๋ ฅํ•˜๋ฉด ์‹คํ–‰๋  ๊ฒƒ ๊ฐ™์ง€๋งŒ, deque์—์„œ๋Š” ์ž‘๋™ํ•˜์ง€ X
    • ๋Œ€์‹  appendleft() ํ•จ์ˆ˜๋กœ ์ƒˆ๋กœ์šด ๊ฐ’์„ ์™ผ์ชฝ๋ถ€ํ„ฐ ์ž…๋ ฅ → ๋จผ์ € ๋“ค์–ด๊ฐ„ ๊ฐ’๋ถ€ํ„ฐ ์ถœ๋ ฅ๋  ์ˆ˜ ์žˆ๋„๋ก ํ•จ

deque ๋ชจ๋“ˆ ์žฅ์ 

  • ๊ธฐ์กด ๋ฆฌ์ŠคํŠธ์™€ ๋น„๊ตํ•  ๋•Œ ๋ช‡ ๊ฐ€์ง€ ์žฅ์ ์ด ์žˆ์Œ
  • ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ linked list์˜ ํŠน์„ฑ์„ ์ง€์›
    • ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ
      • ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ๋•Œ ์š”์†Œ์˜ ๊ฐ’์„ ํ•œ ์ชฝ์œผ๋กœ ์—ฐ๊ฒฐํ•œ ํ›„, ์š”์†Œ์˜ ๋‹ค์Œ ๊ฐ’์˜ ์ฃผ์†Œ๊ฐ’์„ ์ €์žฅํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๊ธฐ๋ฒ•
      • [๊ทธ๋ฆผ 7-5]์™€ ๊ฐ™์ด ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋จ

  • [๊ทธ๋ฆผ 7-6]์ฒ˜๋Ÿผ ๋‹ค์Œ ์š”์†Œ์˜ ์ฃผ์†Œ๊ฐ’์„ ์ €์žฅํ•˜๋ฏ€๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์›ํ˜•์œผ๋กœ ์ €์žฅ๊ฐ€๋Šฅ
  • ๋˜ํ•œ, ๋งˆ์ง€๋ง‰ ์š”์†Œ์— ์ฒซ ๋ฒˆ์งธ ๊ฐ’์˜ ์ฃผ์†Œ๋ฅผ ์ €์žฅ์‹œ์ผœ ํ•ด๋‹น ๊ฐ’์„ ์ฐพ์•„๊ฐˆ ์ˆ˜ ์žˆ๋„๋ก ์—ฐ๊ฒฐ
    • ์ด๋Ÿฌํ•œ ํŠน์ง• ๋•Œ๋ฌธ์— ๊ฐ€๋Šฅํ•œ ๊ธฐ๋Šฅ → rotate() ํ•จ์ˆ˜
      • rotate()→๊ธฐ์กด deque์— ์ €์žฅ๋œ ์š”์†Œ๋“ค ๊ฐ’์˜ ์ธ๋ฑ์Šค๋ฅผ ๋ฐ”๊พธ๋Š” ๊ธฐ๋ฒ•
      • ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋Š” ์–‘์ชฝ ๋์˜ ์š”์†Œ๋“ค์„ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ [๊ทธ๋ฆผ 7-6]์ฒ˜๋Ÿผ ์›ํ˜•์˜ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง
      • ์ด๋Ÿฌํ•œ ํŠน์ง•์„ ์ด์šฉ → ๊ฐ ์š”์†Œ์˜ ์ธ๋ฑ์Šค ๋ฒˆํ˜ธ๋ฅผ ํ•˜๋‚˜์”ฉ ์˜ฎ๊ธด๋‹ค๋ฉด ์‹ค์ œ๋กœ ์š”์†Œ๋ฅผ ์˜ฎ๊ธฐ์ง€ ์•Š๋”๋ผ๋„ ์ธ๋ฑ์Šค ๋ฒˆํ˜ธ๋ฅผ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์Œ

rderedDict ๋ชจ๋“ˆ


์ด๋ฆ„ ๊ทธ๋Œ€๋กœ ์ˆœ์„œ๋ฅผ ๊ฐ€์ง„ ๋”•์…”๋„ˆ๋ฆฌ ๊ฐ์ฒด

  • ์•ž์—์„œ ๋”•์…”๋„ˆ๋ฆฌ๋Š” ์ˆœ์„œ ๋ฅผ ๋ณด์žฅํ•˜์ง€ ์•Š๋Š” ๊ฐ์ฒด๋ผ๋Š” ๊ฒƒ์„ ์–ธ๊ธ‰
  • ⇒ ์ฆ‰ ๋”•์…”๋„ˆ๋ฆฌ ํŒŒ์ผ์„ ์ €์žฅํ•˜๋ฉด ํ‚ค๋Š” ์ €์žฅ ์ˆœ์„œ์™€ ์ƒ๊ด€์—†์ด ์ €์žฅ๋จ. [์ฝ”๋“œ 7-2]๋ฅผ ์‹คํ–‰

 

์–ด๋–ค ์ปดํ“จํ„ฐ๋“  ์ƒ๊ด€์—†์ด x, y, z, 1์˜ ์ˆœ์„œ๋Œ€๋กœ ํ‚ค-๊ฐ’์Œ์ด ์ถœ๋ ฅ๋จ

  • ๊ทธ๋ ‡๋‹ค๋ฉด OrderedDict ๋ชจ๋“ˆ์€ ์–ธ์ œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„๊นŒ?
    • ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ๋”•์…”๋„ˆ ๋ฆฌ ๋กœ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์‹œ ํ‚ค๋‚˜ ๊ฐ’์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ •๋ ฌํ•  ๋•Œ
    • ์˜ˆ๋ฅผ ๋“ค์–ด ํ‚ค๋ฅผ ์ด์šฉํ•˜์—ฌ ์ฃผ๋ฏผ๋“ฑ๋ก ๋ฒˆํ˜ธ๋ฅผ ๋ฒˆํ˜ธ ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌํ•œ ํ›„ ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๊ฒฝ์šฐ
    • [์ฝ”๋“œ 7-4]๋ฅผ ์‚ดํŽด๋ณด์ž.

defaultdict ๋ชจ๋“ˆ


๋”•์…”๋„ˆ๋ฆฌ์˜ ๋ณ€์ˆ˜๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ํ‚ค์— ๊ธฐ๋ณธ๊ฐ’์„ ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•

  • ์ƒˆ๋กœ์šด ํ‚ค๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ๋ณ„๋‹ค๋ฅธ ์กฐ์น˜ ์—†์ด ์ƒˆ๋กœ์šด ๊ฐ’์„ ์ƒ์„ฑ๊ฐ€๋Šฅ
  • ์‹ค์ œ ๋”•์…”๋„ˆ๋ฆฌ์—์„œ๋Š” [์ฝ”๋“œ 7-5]์ฒ˜๋Ÿผ ํ‚ค๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ  ํ•ด๋‹น ํ‚ค์˜ ๊ฐ’์„ ํ˜ธ์ถœํ•˜๋ ค๊ณ  ํ•  ๋•Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒ
  • ⇒ ์ฆ‰, ์ฝ”๋“œ์— ์„œ first์˜ ํ‚ค๊ฐ’์„ ๋ณ„๋„๋กœ ์ƒ์„ฑํ•˜์ง€ ์•Š์€ ์ฑ„ ๋ฐ”๋กœ ํ˜ธ์ถœํ•˜์—ฌ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒƒ

 

Counter ๋ชจ๋“ˆ


์‹œํ€€์Šค ์ž๋ฃŒํ˜•์˜ ๋ฐ์ดํ„ฐ ๊ฐ’์˜ ๊ฐœ์ˆ˜๋ฅผ ๋”•์…”๋„ˆ๋ฆฌ ํ˜•ํƒœ๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•

  • ์ฆ‰, ๋ฆฌ์ŠคํŠธ๋‚˜ ๋ฌธ์ž์—ด๊ณผ ๊ฐ™์€ ์‹œํ€€์Šค ์ž๋ฃŒํ˜•์— ์ €์žฅ๋œ ์š”์†Œ ์ค‘์—์„œ ๊ฐ™์€ ๊ฐ’์ด ๋ช‡ ๊ฐœ ์žˆ๋Š”์ง€ ๊ทธ ๊ฐœ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜

 

namedtuple ๋ชจ๋“ˆ


ํŠœํ”Œ์˜ ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์ฒด๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•

  • ์–ด๋–ค ํŠน์ • ๋ฐ์ดํ„ฐ๋Š” ์ €๋งˆ๋‹ค ๊ทœ์ •๋œ ์ •๋ณด๊ฐ€ ์žˆ์Œ
  • ์˜ˆ๋ฅผ ๋“ค์–ด. ํ•™์ƒ์ด๋ผ๋Š” ์ •๋ณด๋ฅผ ์ปดํ“จํ„ฐ์— ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ๋ช‡ ๊ฐ€์ง€ ๋ณ€์ˆ˜(ํ•™๋ฒˆ, ์ด๋ฆ„, ํ•™๋…„, ํ•™๊ณผ ๋“ฑ)๊ฐ€ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ •๋ณด๋ฅผ ํ•˜๋‚˜์˜ ๋ฆฌ์ŠคํŠธ๋กœ ๋งŒ๋“ค์–ด ์ด์ฐจ์›Œ ๋ฆฌ์ŠคํŠธ ํ˜•ํƒœ๋กœ ๊ตฌ์„ฑํ•ด๋„ ๋จ
  • ๊ทธ๋Ÿฌ๋‚˜ ์ด๋•Œ. ๋‚˜์ค‘์—๋ผ๋„ ์ด ๋ฆฌ์ŠคํŠธ๋ฅผ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ์ž์„ธํ•œ ์ •๋ณด๋ฅผ ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ์ด ์–ด๋ ค์šธ ์ˆ˜ ์žˆ์Œ
    • ๊ทธ๋ž˜์„œ ์ด๋Ÿฌํ•œ ์ •๋ณด๋ฅผ ํ•˜๋‚˜์˜ ํŠœํ”Œ ํ˜•ํƒœ๋กœ ๊ตฌ์„ฑํ•ด ์†์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๊ฐ€ namedtuple์ด๋‹ค. C ์–ธ์–ด์—์„œ๋Š” struct๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ์‚ฌ์šฉ๋จ. ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•ด๋ณด์ž

  • ์œ„ ์ฝ”๋“œ๋Š” ์ขŒํ‘œ ํ‰๋ฉด์—์„œ์˜ ์ ์˜ ์œ„์น˜๋ฅผ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด Point๋ผ๋Š” ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๊ฐ’์„ ์ €์žฅํ•œ namedtuple
    • Point = namedtuple(’Point', ['x', 'y']) ์ฝ”๋“œ์—์„œ Point ๊ฐ์ฒด์˜ ์ด๋ฆ„์€ Point๋กœ ์ง€์ •ํ•˜๊ณ , ์ €์žฅ๋˜๋Š” ์š”์†Œ์˜ ์ด๋ฆ„์„ x์™€ y๋กœ ์ง€์ •
  • ๋‹ค์Œ์œผ๋กœ Point ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑ
    • ์ƒ์„ฑ์€ ํ•จ์ˆ˜์™€ ๋น„์Šท
    • Point ๊ฐ์ฒด์—์„œ ํ˜ธ์™€ y๋ฅผ ๋ณ€์ˆ˜๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ณ  ๊ฐ๊ฐ p = Pointdl, y=22)์—์„œ ์ฐจ๋ก€๋กœ ์‚ฌ์šฉ๋˜์–ด ๊ฐ’์„ ์ €์žฅ๊ฐ€๋Šฅ
    • ์ž…๋ ฅ๋œ ๊ฐ’์€ p ๋ณ€์ˆ˜์— ์ €์žฅ
    • ์—ฌ๊ธฐ์„œ ์ฃผ๋ชฉํ•  ๊ฒƒ์€ p ๋ณ€์ˆ˜์— ์ €์žฅ๋œ ๊ฐ’์„ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•
      • ์ฒซ์งธ, ์š”์†Œ์˜ ์ด๋ฆ„์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•
      • p.x, p.y์™€ ๊ฐ™์ด ๋ณ€์ˆ˜๋ช…๊ณผ ์š”์†Œ์˜ ์ด๋ฆ„์„ ์ (.) ์œผ๋กœ ์—ฐ๊ฒฐํ•˜๋ฉด ํ•ด๋‹น ๊ฐ’์„ ๋ถˆ๋Ÿฌ๋‚ผ ์ˆ˜ ์žˆ์Œ
      • ๋˜ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉ
      • ์ธ๋ฑ์Šค๋Š” ์ด๋ฆ„์ด ๋“ค์–ด๊ฐ„ ์ˆœ์„œ๋Œ€๋กœ ๊ฐ’์ด ์ €์žฅ๋จ
        • ์ฆ‰, p[0]์€ Point ๊ฐ์ฒด์—์„œ ๋จผ์ € ์ €์žฅ๋˜์–ด์•ผ ํ•˜๋Š” x๊ฐ’์— ๋Œ€์‘
        • p[1]์€ Point ๊ฐ์ฒด์—์„œ ๋‘ ๋ฒˆ์งธ๋กœ ์ €์žฅ๋˜์–ด์•ผ ํ•˜๋Š” y๊ฐ’์— ๋Œ€์‘
        • ์ด๋กœ ์ธํ•ด ๋ง์…ˆ ์—ฐ์‚ฐ์ด๋‚˜ ์–ธํŒจํ‚น unpacking ์—ฐ์‚ฐ ๋“ฑ์ด ๋ชจ๋‘ ๊ฐ€๋Šฅํ•ด์ง