Home > 2024 > DataStructure > πŸ“¦[DataStructure] λ³€μˆ˜

πŸ“¦[DataStructure] λ³€μˆ˜
DataStructure

λ³€μˆ˜.

κ°œλ³€ 데이터 쑰각을 μ’…μ’… λ³€μˆ˜(variable)에 μ €μž₯ν•˜κ³€ ν•©λ‹ˆλ‹€.

  • λ³€μˆ˜(variable) : 컴퓨터 λ©”λͺ¨λ¦¬ λ‚΄ 데이터 μœ„μΉ˜(λ˜λŠ” μ£Όμ†Œ)λ₯Ό ν‘œν˜„ν•˜λŠ” μ΄λ¦„μž…λ‹ˆλ‹€.
    • ν”„λ‘œκ·Έλž¨ μ‹€ν–‰ 쀑 λ³€κ²½λ˜λŠ” 정보λ₯Ό 좔적할 수 있게 ν•©λ‹ˆλ‹€.
      • 예λ₯Ό λ“€μ–΄ For 루프λ₯Ό λͺ‡ λ²ˆμ§€λ‚˜κ°”λŠ”μ§€ μ„Έμ–΄μ•Ό ν•  경우, κ²Œμž„μ—μ„œ ν”Œλ ˆμ΄μ–΄μ˜ 점수λ₯Ό μΆ”μ ν•΄μ•Όν•˜λŠ” 경우 λ“±

λ³€μˆ˜κ°€ μ—†μœΌλ©΄ ν”„λ‘œκ·Έλž¨μ˜ λ‚΄λΆ€ μƒνƒœλ₯Ό 좔적, 평가(evaluate), λ³€κ²½(update)ν•  수 μ—†μŠ΅λ‹ˆλ‹€.

  • λ³€μˆ˜λ₯Ό μƒμ„±ν•˜λ©΄ μ‹œμŠ€ν…œμ΄ 그것을 μžλ™μœΌλ‘œ ν• λ‹Ήν•˜κ³  μœ„μΉ˜λ₯Ό μ§€μ •ν•©λ‹ˆλ‹€.
    • 그리고 λ‚˜μ„œ μ›ν•˜λŠ” λ³€μˆ˜ 이름을 μ‚¬μš©ν•΄ 자유둭게 ν•΄λ‹Ή μœ„μΉ˜μ— 데이터λ₯Ό μ“°κ³ , 데이터λ₯Ό μ“Έ λ•Œ μ‚¬μš©ν•œ λ³€μˆ˜ 이름을 μ‚¬μš©ν•΄ μ €μž₯된 데이터λ₯Ό 읽을 수 μžˆμŠ΅λ‹ˆλ‹€.

λ³€μˆ˜ μ΄λ¦„λ§Œ μ•Œκ³  μžˆλ‹€λ©΄ λ°μ΄ν„°μ˜ λ©”λͺ¨λ¦¬ μœ„μΉ˜λ₯Ό μ•Œ ν•„μš”κ°€ μ—†μŠ΅λ‹ˆλ‹€.

컴퓨터 λ©”λͺ¨λ¦¬λ₯Ό μ—¬λŸ¬ μƒμžκ°€ 일렬둜 λŠ˜μ–΄μ„  κ²ƒμ²˜λŸΌ 생각할 μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

  • 각 λ³€μˆ˜λŠ” μ €μž₯ν•œ λ°μ΄ν„°μ˜ 크기에 따라 ν•˜λ‚˜ μ΄μƒμ˜ μΈμ ‘ν•œ μƒμžλ₯Ό μ°¨μ§€ν•©λ‹ˆλ‹€.

μ•„λž˜ 그림은 Level, Score, AveScoreλΌλŠ” μ„Έ λ³€μˆ˜λ₯Ό λ³΄μ—¬μ€λ‹ˆλ‹€.

  • μ—¬κΈ°μ„œ 평균 점수(AveScore)λŠ” λ©”λͺ¨λ¦¬ μƒμžλ₯Ό 두 개 μ‚¬μš©ν•˜λŠ” 뢀동 μ†Œμˆ˜μ  수(floating point number, μ†Œμˆ˜μ μ΄ μžˆλŠ” 숫자)μž…λ‹ˆλ‹€.

μ–΄λ–€ μΈ‘λ©΄μ—μ„œ λ³€μˆ˜λŠ” 쒅이 λ¬Έμ„œλ₯Ό λ‹΄λŠ” 폴더에 뢙은 쒅이 라벨과 λΉ„μŠ·ν•©λ‹ˆλ‹€.

μ•„λž˜ 그림처럼 라벨을 뢙인 ν›„μ—λŠ” ν΄λ”μ˜ μˆœμ„œλ‚˜ μ •ν™•ν•œ μœ„μΉ˜λ₯Ό κΈ°μ–΅ν•  ν•„μš”κ°€ μ—†μŠ΅λ‹ˆλ‹€.

  • κ·Έ μ΄μœ λŠ” 라벨둜 폴더λ₯Ό 찾으면 되기 λ•Œλ¬Έμž…λ‹ˆλ‹€.
    • μ΄λ•Œ μΆ©λΆ„ν•œ 정보가 ν¬ν•¨λœ 이름을 μ‚¬μš©ν•˜λŠ” 것이 μ€‘μš”ν•©λ‹ˆλ‹€.
      • λ§Œμ•½μ— 파일 캐비닛에 ν•  일, μ€‘μš”ν•œ 일, λ‹€λ₯Έ ν•  일, κ·Έ λ°–μ˜ 일과 같이 이름이 κ²ΉμΉ˜λŠ”(이λ₯Ό μ˜€λ²„λ‘œλ“œ(overload)라고 λ§ν•©λ‹ˆλ‹€) 폴더가 λ§Žμ„ 경우 λ‚΄μš©μ„ νŒŒμ•…ν•˜κΈ° μ–΄λ ΅μŠ΅λ‹ˆλ‹€.
        • λ§ˆμ°¬κ°€μ§€λ‘œ, λ³€μˆ˜μ˜ 이름이 λͺ¨ν˜Έν•˜λ©΄ λ³€μˆ˜κ°€ μ–΄λ–€ 값을 λ‚˜νƒ€λ‚΄λŠ”μ§€ μΆ”μΈ‘ν•˜κΈ° μ–΄λ €μ›Œμ§‘λ‹ˆλ‹€.

λ§Žμ€ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ—μ„œ λ³€μˆ˜λŠ” μ •μˆ˜(integer), 뢀동 μ†Œμˆ˜μ  κ°’(float), 뢈린 κ°’(Boolean) λ“±κ³Ό 같이 μ €μž₯된 λ°μ΄ν„°μ˜ νƒ€μž…κ³Ό 연관이 μžˆμŠ΅λ‹ˆλ‹€.

  • νƒ€μž…μ€ λ³€μˆ˜κ°€ μ–Όλ§ˆλ‚˜ λ§Žμ€ λ©”λͺ¨λ¦¬λ₯Ό μ°¨μ§€ν•˜κ³  λ©”λͺ¨λ¦¬μ— μ €μž₯된 λ‚΄μš©μ„ μ–΄λ–»κ²Œ μ‚¬μš©ν•΄μ•Ό ν•˜λŠ”μ§€λ₯Ό ν”„λ‘œκ·Έλž¨μ— μ•Œλ €μ€λ‹ˆλ‹€.
    • 예λ₯Ό λ“€μ–΄, 뢈린 λ³€μˆ˜λŠ” μ œν•œλœ λ²”μœ„μ˜ κ°’(즉, μ°Έκ³Ό 거짓)만 μ €μž₯ν•˜λ©° 적은 μ–‘μ˜ λ©”λͺ¨λ¦¬λ§Œ μ‚¬μš©ν•˜λŠ” κ²½μš°κ°€ λ§ŽμŠ΅λ‹ˆλ‹€.
    • 반면, 2λ°° 정밀도(double-precision) 뢀동 μ†Œμˆ˜μ  μˆ˜λŠ” 훨씬 더 크고 μ •ν™•ν•œ 숫자λ₯Ό μ €μž₯ν•˜λ―€λ‘œ μ—¬λŸ¬ μƒμžλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.

νƒ€μž…μ„ μ •μ˜ν•˜λŠ” λ¬Έλ²•μ΄λ‚˜ νƒ€μž…μ„ λͺ…μ‹œμ μœΌλ‘œ μ •μ˜ν•΄μ•Όλ§Œ ν•˜λŠ”μ§€ μ—¬λΆ€λŠ” ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λ§ˆλ‹€ λ‹€λ¦…λ‹ˆλ‹€.

μ•„λž˜ 예제λ₯Ό λ΄λ΄…μ‹œλ‹€.

μ˜ˆμ œμ—μ„œλŠ” λ³€μˆ˜λ₯Ό λͺ…μ‹œν•  λ•Œ 언어와 λ¬΄κ΄€ν•œ <νƒ€μž…>: <λ³€μˆ˜μ΄λ¦„>μ΄λΌλŠ” μ˜μ‚¬ μ½”λ“œ(pseudocode) ν˜•μ‹μ„ μ‚¬μš©ν•©λ‹ˆλ‹€.

Integer: coffee_count = 5
Float: percentage_words_spelled_correctly = 21.0
Boolean: had_enough_coffee = False

가씀 Typeμ΄λΌλŠ” νƒ€μž…μ΄ μ§€μ •λœ λ³€μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

  • 이 νƒ€μž…μ€ μ–΄λ–»κ²Œ κ΅¬ν˜„ν•˜λŠ”μ§€μ— 따라 λ‹€μ–‘ν•œ νƒ€μž…μ΄ 될 수 μžˆλ‹€λŠ” 사싀을 λ‚˜νƒ€λƒ…λ‹ˆλ‹€.
    • λŒ€λΆ€λΆ„μ˜ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ—μ„œ 일반적으둜 μ‚¬μš©λ˜λŠ” ꡬ문을 μ‚¬μš©ν•΄ λ³€μˆ˜λ₯Ό λ‹€λ£° κ²ƒμž…λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄, λ³€μˆ˜μ— 값을 λŒ€μž…ν•  λ•ŒλŠ” =을 μ‚¬μš©ν•©λ‹ˆλ‹€.

coffee_count = coffee_count + 1