개발자 HOON
πŸ› HOON DEVLog
개발자 HOON
전체 방문자
였늘
μ–΄μ œ
  • 😎 전체 μΉ΄ν…Œκ³ λ¦¬ (137)
    • πŸ“ μ‹ μž… 인터뷰 μ€€λΉ„ (7)
    • πŸ¦” μ·¨μ—…μ€€λΉ„ 기둝 (7)
    • β˜• μžλ°” : JAVA (5)
    • 🐍 μ½”λ”©ν…ŒμŠ€νŠΈ λŒ€λΉ„ : PS (80)
    • 🌱 λ°±μ—”λ“œ : Backend (13)
    • πŸ§ͺ 컴퓨터과학 : CS (11)
    • πŸ—‚ λ°μ΄ν„°λ² μ΄μŠ€ : DB (1)
    • πŸƒ‍♂️ DEVLOG (8)
    • βš™οΈ Trouble Shooting (5)

λΈ”λ‘œκ·Έ 메뉴

  • ν™ˆ
  • GitHub
  • Resume

곡지사항

인기 κΈ€

졜근 κΈ€

ν‹°μŠ€ν† λ¦¬

hELLO Β· Designed By μ •μƒμš°.
개발자 HOON

πŸ› HOON DEVLog

[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] μž…κ΅­μ‹¬μ‚¬ (level3, python)
🐍 μ½”λ”©ν…ŒμŠ€νŠΈ λŒ€λΉ„ : PS

[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] μž…κ΅­μ‹¬μ‚¬ (level3, python)

2023. 4. 14. 21:23

 

 

πŸ€” 풀이 μ½”λ“œ

 

def check(n, times, k):
    can_enter = 0
    for t in times:
        can_enter += k // t
    return True if can_enter >= n else False

def solution(n, times):
    answer = 0
    start = 0
    end = min(times) * n
    mid = start
    
    while mid + 1 != end:
        mid = (start + end) // 2
        if check(n, times, mid):
            end = mid
        else:
            start = mid
        
    return end

 

 

πŸ€” 문제 풀이

 

μ΄λΆ„νƒμƒ‰μœΌλ‘œ 풀이해야 ν•˜λŠ” λ¬Έμ œμž…λ‹ˆλ‹€. 항상 이뢄 탐색은 μ‹œμž‘μ κ³Ό 끝점을 μž‘λŠ” κΈ°μ€€κ³Ό, μ–΄λ–€ 것을 이뢄탐색에 μ‚¬μš©ν•΄μ•Ό ν• μ§€ νŒλ‹¨ν•˜λŠ”κ²Œ μ–΄λ ΅λ„€μš”.

 

이 λ¬Έμ œμ—μ„œ μ΄λΆ„νƒμƒ‰μ˜ λŒ€μƒμ€, λͺ¨λ“  μ‚¬λžŒμ΄ 심사λ₯Ό λ°›λŠ”λ° κ±Έλ¦¬λŠ” μ‹œκ°„μ„ μ΄λΆ„νƒμƒ‰μ˜ λŒ€μƒμœΌλ‘œ μ‚ΌμŠ΅λ‹ˆλ‹€.

λ‚˜μ˜¬ 수 μžˆλŠ” μ΅œλŒ€ μ‹œκ°„μ€, 검사관 쀑 κ°€μž₯ 짧게 κ±Έλ¦¬λŠ” κ²€μ‚¬κ΄€μ—μ„œ N λͺ…이 λͺ¨λ‘ λ°›λŠ” μΌ€μ΄μŠ€κ°€ 될 수 μžˆκ² λ„€μš”.

 

κ·Έλž˜μ„œ start와 endλ₯Ό 각각 0, min(times) * n으둜 μž‘μ•˜μŠ΅λ‹ˆλ‹€.

이뢄 탐색을 톡해 midλ₯Ό (start + end) // 2둜 μ„€μ •ν•œ ν›„, check ν•¨μˆ˜λ₯Ό 톡해 μ΄λΆ„νƒμƒ‰μ˜ λ²”μœ„μ˜ μ•žμ„ 쀄일지, λ’€λ₯Ό 쀄일지 κ²°μ •ν•©λ‹ˆλ‹€.

check ν•¨μˆ˜λŠ” k μ‹œκ°„λ™μ•ˆ, times의 감독관듀이 각각 μž…κ΅­ 심사λ₯Ό μ§„ν–‰ν•  수 μžˆλŠ” 양을 λͺ¨λ‘ λ”ν•œ 값을 λ°”νƒ•μœΌλ‘œ, μ£Όμ–΄μ§„ nλͺ… 이상을 μ±„μ› λŠ”μ§€ λͺ»μ±„μ› λŠ”μ§€μ— 따라 True와 Falseλ₯Ό κ²°μ •ν•˜λŠ” ν•¨μˆ˜μž…λ‹ˆλ‹€.

 

λ§Œμ•½ 채웠닀면, mid 값을 μ’€ 더 쀄이기 μœ„ν•΄ endλ₯Ό mid ν¬μ§€μ…˜μœΌλ‘œ λ°”κΏ‰λ‹ˆλ‹€.

nλͺ…을 λ‹€ λͺ» 채웠닀면 μ‹œκ°„μ„ μ’€ 더 늘리기 μœ„ν•΄ startλ₯Ό mid ν¬μ§€μ…˜μœΌλ‘œ λ°”κΏ‰λ‹ˆλ‹€.

 

μ €μž‘μžν‘œμ‹œ λΉ„μ˜λ¦¬ 동일쑰건 (μƒˆμ°½μ—΄λ¦Ό)

'🐍 μ½”λ”©ν…ŒμŠ€νŠΈ λŒ€λΉ„ : PS' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] 거리두기 ν™•μΈν•˜κΈ° (level2, python)  (0) 2023.04.11
[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] λ©€μ©‘ν•œ μ‚¬κ°ν˜• (level2, python)  (0) 2023.04.11
[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] μ—¬ν–‰κ²½λ‘œ (level3, python)  (1) 2023.04.11
[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] λ””μŠ€ν¬ 컨트둀러 (level3, python)  (0) 2023.04.10
[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] μ „λ ₯망을 λ‘˜λ‘œ λ‚˜λˆ„κΈ° (level2, python)  (0) 2023.04.10
    '🐍 μ½”λ”©ν…ŒμŠ€νŠΈ λŒ€λΉ„ : PS' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
    • [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] 거리두기 ν™•μΈν•˜κΈ° (level2, python)
    • [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] λ©€μ©‘ν•œ μ‚¬κ°ν˜• (level2, python)
    • [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] μ—¬ν–‰κ²½λ‘œ (level3, python)
    • [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] λ””μŠ€ν¬ 컨트둀러 (level3, python)
    개발자 HOON
    개발자 HOON
    쒋은 λ°±μ—”λ“œ μ—”μ§€λ‹ˆμ–΄κ°€ 되기 μœ„ν•œ 기둝을 λͺ¨μ•˜μŠ΅λ‹ˆλ‹€. # μ£Όλ‹ˆμ–΄ # λ°±μ—”λ“œ # 개발자

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