Guidelines

체윑볡 문제 ν•΄μ„€

"체윑볡 문제"λ₯Ό νƒμš• μ•Œκ³ λ¦¬μ¦˜(Greedy Algorithm)을 μ΄μš©ν•΄ ν•΄κ²°ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•©λ‹ˆλ‹€.

ν•™μƒλ“€μ—κ²Œ μ²΄μœ‘λ³΅μ„ 효율적으둜 λΆ„λ°°ν•˜μ—¬ μ²΄μœ‘μˆ˜μ—…μ— μ°Έμ—¬ν•  수 μžˆλŠ” 학생 수λ₯Ό μ΅œλŒ€ν™”ν•˜λŠ” 것이 λͺ©ν‘œμž…λ‹ˆλ‹€.


ν•¨μˆ˜ κ΅¬ν˜„

  1. 학생 λΆ„λ₯˜:

    • real_reserveλŠ” μ—¬λΆ„μ˜ μ²΄μœ‘λ³΅μ„ 가진 학생듀 쀑 λ„λ‚œλ‹Ήν•˜μ§€ μ•Šμ€ ν•™μƒλ“€μ˜ λͺ©λ‘μž…λ‹ˆλ‹€.

    • real_lostλŠ” μ²΄μœ‘λ³΅μ„ μžƒμ–΄λ²„λ¦° 학생듀 쀑 여뢄이 μ—†λŠ” ν•™μƒλ“€μ˜ λͺ©λ‘μž…λ‹ˆλ‹€.

  2. 체윑볡 λΆ„λ°°:

    • μ—¬λΆ„μ˜ μ²΄μœ‘λ³΅μ„ 가진 각 학생(real_reserve)에 λŒ€ν•΄, λ°”λ‘œ μ•žλ²ˆν˜Έ(r - 1)λ‚˜ λ’·λ²ˆν˜Έ(r + 1)의 학생이 체윑볡이 μ—†λŠ” 경우(real_lost에 속함), κ·Έ ν•™μƒμ—κ²Œ μ²΄μœ‘λ³΅μ„ λΉŒλ €μ€λ‹ˆλ‹€.

    • μ²΄μœ‘λ³΅μ„ 받은 학생은 real_lost λͺ©λ‘μ—μ„œ μ œκ±°λ©λ‹ˆλ‹€.

  3. κ²°κ³Ό λ°˜ν™˜:

    • μ²΄μœ‘λ³΅μ„ 받지 λͺ»ν•œ ν•™μƒμ˜ 수(len(real_lost))λ₯Ό 전체 학생 수(n)μ—μ„œ λΉΌμ„œ μ²΄μœ‘μˆ˜μ—…μ— μ°Έμ—¬ν•  수 μžˆλŠ” 학생 수λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.

λͺ¨λ²” λ‹΅μ•ˆ
def solution(n, lost, reserve): # 학생 λΆ„λ₯˜ real_reserve = [r for r in reserve if r not in lost] real_lost = [l for l in lost if l not in reserve] # 체윑볡 λΆ„λ°° for r in real_reserve: if r - 1 in real_lost: real_lost.remove(r - 1) elif r + 1 in real_lost: real_lost.remove(r + 1) # κ²°κ³Ό λ°˜ν™˜ return n - len(real_lost)

μ‚¬μš© μ˜ˆμ‹œ

μž…μΆœλ ₯ μ˜ˆμ‹œ
print(solution(5, [2, 4], [1, 3, 5])) # 좜λ ₯: 5

이 μ˜ˆμ‹œμ—μ„œλŠ” 5λͺ…μ˜ 학생 쀑 2λͺ…이 μ²΄μœ‘λ³΅μ„ μžƒμ–΄λ²„λ Έκ³ , 3λͺ…이 μ—¬λΆ„μ˜ μ²΄μœ‘λ³΅μ„ 가지고 μžˆμŠ΅λ‹ˆλ‹€.

μ—¬λΆ„μ˜ μ²΄μœ‘λ³΅μ„ 가진 학생듀이 μ•žλ’€ 번호의 ν•™μƒλ“€μ—κ²Œ μ²΄μœ‘λ³΅μ„ λΉŒλ €μ€„ 수 μžˆμœΌλ―€λ‘œ,

λͺ¨λ“  학생이 μ²΄μœ‘μˆ˜μ—…μ— μ°Έμ—¬ν•  수 있게 λ©λ‹ˆλ‹€. λ”°λΌμ„œ ν•¨μˆ˜λŠ” 전체 학생 수인 5λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.

Guidelines

AI Tutor

Publish

Design

Upload

Notes

Favorites

Help