[TIL-20260203] μ½”λ”© ν…ŒμŠ€νŠΈ - Linked List , 이진 탐색(Binary Search)

2026. 2. 3. 16:26·Today I Learned 🧐

πŸ€ To Do List

 

βœ”οΈ μ½”ν…Œ μ•Œκ³ λ¦¬μ¦˜ κ°•μ˜ - LinkedList 문제, 이진탐색

βœ”οΈ 이λ ₯μ„œ μ΄ˆμ•ˆ μž‘μ„±

βœ”οΈ μ‚¬μ΄λ“œ ν”„λ‘œμ νŠΈ - refresh token λ°œκΈ‰ 둜직 μˆ˜μ •

 

πŸ‘©πŸ»‍πŸ’» Today I Learned ...

 

Linked List

숫자 λ³€ν™˜ νŒ¨ν„΄

μ΄ˆκΈ°κ°’: sum = 0
1. 0 * 10 + 6 = 6      (6)
2. 6 * 10 + 7 = 67     (μ‹­μ˜ 자리둜 λ°€κ³  7 μΆ”κ°€)
3. 67 * 10 + 8 = 678   (백의 자리둜 λ°€κ³  8 μΆ”κ°€)

 

`[6] -> [7] -> [8]` μ΄λ ‡κ²Œ 이어진 λ§ν¬λ“œ 리슀트λ₯Ό `678` 숫자 ν˜•νƒœλ‘œ λ³€ν™˜ν•  λ•Œ

κΈ°μ‘΄ 숫자λ₯Ό 10배둜 κ³±ν•˜κ³ , ν˜„μž¬ 숫자λ₯Ό λ”ν•΄μ„œ μ™Όμͺ½μœΌλ‘œ 자릿수λ₯Ό ν™•μž₯ν•  수 μžˆλ‹€.

 

μ½”λ“œλ‘œ ν‘œν˜„ν•˜λ©΄ μ•„λž˜μ™€ κ°™λ‹€.

 

sum = sum * 10 + cur.data
# 0 → 6 → 67 → 678

 

 

 

이진 탐색(Binary Search)

# μ΅œμ†Œ     탐색     νƒ€κ²Ÿ μ΅œλŒ€
# [0, 3, 5, 6, 1, 2, 4]
# UP -> [1, 2, 4]
# DOWN -> [0, 3, 5]

def is_exist_target_number_binary(target, array):
    current_min = 0
    current_max = len(array) - 1
    current_guess = (current_min + current_max) // 2 # ⭐️ κ°€μš΄λ° 기쀀점

    while current_min <= current_max:
        if array[current_guess] == finding_target:
            return True
        elif array[current_guess] < target:
            # UP
            current_min = current_guess + 1
        else: # array[current_guess] > target
            # DOWN
            current_max = current_guess - 1

        current_guess = (current_min + current_max) // 2

    return False
  • 맀번 탐색 λ²”μœ„λ₯Ό 절반으둜 쀄인닀.  
    • κ°€μš΄λ° κ°’λΆ€ν„° ν™•μΈν•˜μ—¬, 점점 탐색 λ²”μœ„λ₯Ό 쀄인닀. (였λ₯Έμͺ½ or μ™Όμͺ½)
    • μ—…λ‹€μš΄ κ²Œμž„μ„ 예둜 κΈ°μ–΅ν•˜λ©΄ 쉽닀.
  • 일반 탐색
    • 1κ°œμ”© 확인→ μ΅œλŒ€ N번 
    • μ‹œκ°„ λ³΅μž‘λ„ : `O(N)`
  • 이진 탐색
    • μž…λ ₯ λ²”μœ„κ°€ 맀번 κ°μ†Œ
    • μ‹œκ°„ λ³΅μž‘λ„ : `O(log N)`

 

πŸ’‘ pythonμ—μ„œ 숫자 λ‚΄λ¦Ό

- `//` μ—°μ‚°μžλ₯Ό μ΄μš©ν•˜λ©΄ μ†Œμˆ˜μ  μ΄ν•˜μ˜ 수λ₯Ό λͺ¨λ‘ 버리고 λͺ«λ§Œ λ‚˜νƒ€λ‚Ό 수 μžˆλ‹€.

>>> print((4 + 5) / 2)
4.5
>>> print((4 + 5) // 2)
4

 

 

이진 탐색 μ „μ œ 쑰건

  • μ •λ ¬λœ λ°°μ—΄μ—μ„œλ§Œ μ‚¬μš© κ°€λŠ₯ν•˜λ‹€.
  • μ •λ ¬λ˜μ§€ μ•Šμ€ 배열인 경우, κ°€μš΄λ° κ°’ κΈ°μ€€μœΌλ‘œ μ–΄λ–€ 뢀뢄을 탐색해야 ν•˜λŠ”μ§€ μ•Œ 수 μ—†λ‹€.

 

더보기

πŸ” 이진 탐색 μ½”ν…Œ 문제 μœ ν˜•

1. μ΅œλŒ€/μ΅œμ†Œ κ°’ κ΅¬ν•˜κΈ°

2. μ •λ‹΅ 후보λ₯Ό λ„£κ³  "κ°€λŠ₯" μ—¬λΆ€ νŒλ‹¨ ex)길이가 10이면 κ°€λŠ₯?

3. λ²”μœ„κ°€ μ—„μ²­ 큼

4. μ •λ ¬λœ μƒνƒœ or μ •λ ¬ κ°€λŠ₯ν•œ 데이터

5. μ™„μ „ 탐색 ν•  경우 μ‹œκ°„ 초과될 것 같을 λ•Œ

 

 

μ €μž‘μžν‘œμ‹œ λΉ„μ˜λ¦¬ λ³€κ²½κΈˆμ§€ (μƒˆμ°½μ—΄λ¦Ό)

'Today I Learned 🧐' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[TIL-20260205] Access Token μž¬λ°œκΈ‰ κ΅¬ν˜„  (0) 2026.02.05
[TIL-20260204] μ½”λ”© ν…ŒμŠ€νŠΈ - μž¬κ·€ ν•¨μˆ˜ (Recursive Function)  (0) 2026.02.04
[TIL-20260202] Kotlin data class, enum class  (0) 2026.02.02
[TIL-20260131] Docker 이미지 닀루기  (0) 2026.01.31
[TIL-20260129] Docker μ»¨ν…Œμ΄λ„ˆ 닀루기  (0) 2026.01.30
'Today I Learned 🧐' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • [TIL-20260205] Access Token μž¬λ°œκΈ‰ κ΅¬ν˜„
  • [TIL-20260204] μ½”λ”© ν…ŒμŠ€νŠΈ - μž¬κ·€ ν•¨μˆ˜ (Recursive Function)
  • [TIL-20260202] Kotlin data class, enum class
  • [TIL-20260131] Docker 이미지 닀루기
ν•΄λ‹ˆ 🌱
ν•΄λ‹ˆ 🌱
기둝이 μžμ‚°μ΄λ‹€ ( •Μ€α΄—•́ )و✏️
  • ν•΄λ‹ˆ 🌱
    haeni.dev
    ν•΄λ‹ˆ 🌱
  • 링크

    • github
    • velog
  • 전체
    였늘
    μ–΄μ œ
    • λΆ„λ₯˜ 전체보기 (25)
      • μš°μ‚¬κΈ° κ°œλ°œμΌμ§€ 🐰 (4)
      • Today I Learned 🧐 (19)
      • λΆ„λ…Έμ˜ 타이핑 둜그 πŸ”₯ (2)
  • λΈ”λ‘œκ·Έ 메뉴

    • ν™ˆ
    • νƒœκ·Έ
    • λ°©λͺ…둝
  • 곡지사항

  • 인기 κΈ€

  • νƒœκ·Έ

    개발자
    λ°±μ—”λ“œ
    IT
    ci/cd
    μ½”ν…Œ
    개발
    μ½”λ”©ν…ŒμŠ€νŠΈ
    springboot
    AWS
    til
  • 졜근 λŒ“κΈ€

  • 졜근 κΈ€

  • hELLOΒ· Designed Byμ •μƒμš°.v4.10.5
ν•΄λ‹ˆ 🌱
[TIL-20260203] μ½”λ”© ν…ŒμŠ€νŠΈ - Linked List , 이진 탐색(Binary Search)
μƒλ‹¨μœΌλ‘œ

ν‹°μŠ€ν† λ¦¬νˆ΄λ°”